apacheにSSLを設定するときは中間証明書のディレクティブが用意されているのですが、nginxには、中間証明書を直接指定するディレクティブが用意されていません。
■対応方法
ではどうするかといえば
【サーバ証明書と中間証明書を結合したファイル】を作成して、その結合した証明書のファイルを「ssl_certificate」で指定することで対応することができます。
■ファイル結合コマンド例
# cat cert.cer tyukan_cert.cer > cert.pem
このようにすることで、cert.pemが結合されたファイルになります。
結合した証明書ファイルの内容は以下のようになります。もちろんコマンドを利用しないで、直接エディタでコピペして以下の様なファイルになるようにしても問題ありません。
-----BEGIN CERTIFICATE-----
[サーバ証明書]
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
[中間証明書]
-----END CERTIFICATE-----
■設定ファイル
nginxの設定ファイルには以下のように記述します。参考までに書いておきます。
.....省略.....
listen 443 default ssl;
server_name _;
root /var/www/vhosts/xxxxxxxxxxxx;
index index.html index.htm;
charset utf-8;
ssl on;
ssl_certificate /etc/nginx/ssl/cert;
ssl_certificate_key /etc/nginx/ssl/sslkey.key;
.....省略.....
■設定の確認
以下のコマンドを実行することで、設定ファイルの正当性を確認することができます。証明書ファイルの結合に失敗していたりした時にもエラーが出るので、再起動前に確認しておきましょう。
nginx -t
これで、ポートの設定など上手く行っていればhttpsで接続できるようになります。スマートフォンなどでも問題なくhttps接続できましたとさ。
Googleも常時SSL接続を推奨しているみたいですね。各自判断して挑戦してみてください。では