オレオレ証明書でnginxのサイトをHttps対応する

オレオレ証明書を発行する

証明書発行の流れは下記のような感じ。 certificate.png

オレオレ証明書では、認証局でやることを自分でやることから『オレオレ』証明書と言われる。

オレオレ証明書の発行の流れは下記。

  1. 秘密鍵を作る

    openssl genrsa -out himitsu.key 2048
    
  2. 証明書署名要求を作る

    openssl req -new -key himitsu.key -out goruchan.csr
    

    crt.png

  3. サーバ証明書を作成する

ここは本来は、信用できる第三者認証局(CA)にやってもらう。そうすることで、クライアントは信用できる相手だと判断できる。

  openssl x509 -days 3650 -req -signkey himitsu.key < goruchan.csr > goruchan.crt

nginxの設定ファイルを変更する

公式のConfiguring HTTPS serversを参考に下記を設定。

server {
    listen       443 ssl;
    server_name  goruchan.net;
    ssl_certificate     /home/goruchan/goruchan.net/goruchan.crt;
    ssl_certificate_key /home/goruchan/goruchan.net/himitsu.key;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /home/goruchan/goruchan.net/public;
        index  index.html index.htm;
    }

    location /images/ {
        root /home/goruchan/goruchan.net/public;
    }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

設定したらいつもの下記コマンドを実行して、設定を反映する

sudo nginx -s reload

WebサイトにChromeでアクセスしてみると、下記のような感じになる。 oreore2.png どうやらChromeではオレオレのサイトは表示させないようにしているみたい。

簡単に表示するには、safariでやるのが簡単。 で、Safariでアクセスしてみると、矢印部をクリックすることで表示できるようにできる。 oreore3.png Webサイトを閲覧を選択。 oreore4.png パスワードを指定して、当該サイトの証明書をWebブラウザに登録する。 oreore5.png 下記のように鍵付きのWebサイトになりました。 oreore6.png ここまでやってだいぶ怖い思いをしたので、とりあえずWebブラウザからオレオレ証明書を削除しました。lanchpadからキーチェーンを起動して、さっき入れたオレオレ証明書を削除すれば、Safariからオレオレ証明書を削除できました。 oreore7.png

ここまで来たら、認証局に登録するのもやってみたいので、無料で使えるというLet's Encrypt - フリーな SSL/TLS 証明書で証明書を作ってみようと思います。

参考