nginxに自己証明書(オレオレ証明書)を設定

スポンサーリンク

自己証明書とは?

自己証明書は、オレオレ証明書とも呼ばれています。

正式なSSL証明書は、信頼される認証局からサーバ証明書を認証してもらいますが、自己証明書(オレオレ証明書)は、自分のサーバ自身が認証局になって認証してしまいましょうというものです。

今回は、この自己証明書(オレオレ証明書)を利用してhttps通信の検証を行います!

ちなみに、自己証明書(オレオレ証明書)を利用されているサーバにgoogle chomeやIEを利用して接続すると警告が出てしまいます。
ssl_err
見るからに怪しいですよね(笑)

nginxとは?

nginx(エンジンエックス)と呼ばれるWebサーバでもプロキシサーバともよく利用されるソフトウェアです。
今回は、このnginxの自己証明書(オレオレ証明書)の設定を行っていきます!

nginxで無料のSSL証明書(Let’s Encrypt)を設定はこちらを参照してください!

検証環境

  • CentOS7.3
  • nginx 1.13.8
  • openssl 1:1.0.2k-8.el7

OpenSSLのインストール

証明書を作成するためには、OpenSSLを利用します。

必要なパッケージをインストール

# yum -y install openssl mod_ssl

秘密鍵の作成

# openssl genrsa -out server.key 2048

CSRの作成

# openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP ←国名
State or Province Name (full name) []:Tokyo ←都市名
Locality Name (eg, city) [Default City]:Otaku ← 地域名
Organization Name (eg, company) [Default Company Ltd]: ←空エンター
Organizational Unit Name (eg, section) []: ←空エンター
Common Name (eg, your name or your server's hostname) []:hogehoge ←適当
Email Address []: ←空エンター

Please enter the following 'extra' attributes ←空エンター
to be sent with your certificate request ←空エンター
A challenge password []: ←空エンター
An optional company name []: ←空エンター

証明書の作成

# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

秘密鍵と証明書を特定の場所に移動

# mv server.* /etc/ssl/certs/

nginxのインストール

  • リポジトリの登録
sudo vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=0
enabled=1

インストール

# yum -y install nginx

ssl証明書の設定

nginxの設定ファイルを編集

# vi /etc/nginx/conf.d/default.conf
server {
listen 443; ←80から変更
server_name localhost;

ssl on; ←追記
ssl_certificate /etc/ssl/certs/server.crt; ←追記
ssl_certificate_key /etc/ssl/certs/server.key; ←追記
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

nginxを起動

# systemctl restart nginx

ファイアウオール(https)を許可

# firewall-cmd --add-service=https --zone=public --permanent

nginxのテストページを確認

  • webブラウザで、http://サーバのIPアドレス/に接続する
    nginx_top

皆さん、nginxのトップページは見れたでしょうか?
簡単に設定できましたよね。

最後に

今回は、nginxの自己証明書の設定について解説しました。簡単に出来たと思います。
正式なSSL証明書は、ドメインを登録しなければ取得することができないので、検証で利用する際は、自己証明書(オレオレ証明書)を利用したほうが手軽ですよね。
nginxについては、近年注目されている?急速に導入されているWebサーバですので、扱いになれておきたいです。
今後は、nginxの機能について構築しながら解説していきます。

タイトルとURLをコピーしました