nginx で オレオレ証明書をする


概要

http だと、chromeなどで「保護されていない通信」と表示されてしまう。
ちゃんとしたサイトっぽいので、https へと変換しよう!
こちらを参考に設定させて頂きました!

やることリスト

  • openssl インストール
  • 秘密鍵の作成
  • CSR(証明書署名要求)の作成
  • CRT(SSLサーバ証明書)の作成
  • nginx の設定

ファイルの作成

openssl のインストール

$ sudo yum install openssl

秘密鍵の作成

$ sudo mkdir /etc/nginx/ssl
$ sudo openssl genrsa -out /etc/nginx/ssl/server.key 2048

CSR(証明書署名要求)の作成

$ sudo openssl req -new -key /etc/nginx/ssl/server.key -out /etc/nginx/ssl/server.csr

「Common Name」には、サーバのドメイン名を入力します。
↓参考画像

作成されたファイルを確認すると、2つのファイルが出来ています。

$ ls /etc/nginx/ssl
server.csr  server.key

CRT(SSLサーバ証明書)の作成

今回はオレオレ証明書を作成するので、CRTファイルは自分で作成します。
本来このファイルは、証明局へ登録すると発行してもらえるファイルになります。

$ sudo openssl x509 -days 3650 -req -signkey /etc/nginx/ssl/server.key -in /etc/nginx/ssl/server.csr -out /etc/nginx/ssl/server.crt
$ ls /etc/nginx/ssl/
server.crt  server.csr  server.key

これで、3ファイルの作成が完了です。

nginxの設定

$ sudo vi /etc/nginx/conf.d/[任意のファイル].conf
server {
    # 443番ポートを許可し、SSL機能をON
    # listen 80;
    listen 443 ssl;

    # 証明書を設定
    ssl_certificate     /etc/nginx/ssl/server.crt;
    ssl_certificate_key /etc/nginx/ssl/server.key;
}

nginx を再起動

$ sudo systemctl restart nginx

[https://サーバのURLかドメイン] で接続して、確認
オレオレ証明書なので、ブラウザでブロックされるので、そのまま進めば自分のページが見れます。