読者です 読者をやめる 読者になる 読者になる

nginxを使ったSSLの設定

nginx Infrastructure

参考

Rapid SSLの公式 (nginx)

https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&actp=CROSSLINK&id=SO17664

nginx連載6回目: nginxの設定、その4 - TLS/SSLの設定

http://heartbeats.jp/hbblog/2012/06/nginx06.html

おなじみHEARTBEATSさま

イケメンとラブレターで学ぶSSLの仕組み

いとうじゅんいちさんの記事

http://blog.jnito.com/entry/2013/05/26/064803

手順

証明書の準備

メールで送られてきた証明書をnginxの命名規則にしたがってssl.crtとかの .crt拡張子で保存。

こっから中間証明書を発行します。

https://knowledge.rapidssl.com/support/ssl-certificate-support/index?page=content&actp=CROSSLINK&id=INFO1548

中間証明書だと、.pem とかの拡張子としてサーバーにアップロードする感じなのかなと思ったら、conbineする必要があるらしい。ということで合体。

$ cat intermediate.crt >> SSL.crt

nginxの設定

こっからは http://heartbeats.jp/hbblog/2012/06/nginx06.html を参考にさせていただきながら。同じホストで80番ポートと443番ポート、つまりhttpとhttpsプロトコルでのアクセスを可能にするには、

上述しましたが、listenディレクティブにsslパラメータを付けると、そのポートでSSLを有効にして待ち受けるようになります。この機能を使い、次のようにsslパラメータを付けない80番ポートを指定したlistenディレクティブとsslパラメータを付けた443番ポートを指定したlistenディレクティブを設定すると、同じバーチャルサーバの設定でHTTPとHTTPSの両方を有効にすることができます。

server {
    listen          80;
    listen          443 ssl;
    server_name     example.jp;
    ssl_certificate /etc/nginx/cert.pem;
    ...
}

このときにはsslディレクティブを記述しないでください。TLS/SSLの有効・無効はlistenディレクティブのsslパラメータの有無で判断するようになります。もし、sslディレクティブでonを指定すると80番ポートでもTLS/SSLで待ち受けるようになってしまいます。

とあります。ということでまずはこちらの方法からやってみて、HTTPSでの接続を確認したらSEO的に正しいやり方でリダイレクトをかける、という流れでやってみたいと思います。

ここでstylesheetが読み込まれない問題が発生。proxyしてるのがどうなんって思ったけど、多分アプリケーション側の設定だと思われる。