はじめに
- こちらの記事は2018/06/09に記載しました。
- 現時点で、EC2標準のyumでnginxをインストールした場合、v1.12.1がインストールされます。
- nginx v1.12.1では、TLS1.3は未サポートです。このため、TLSは1.2を利用しています。
- Let’s EncryptはNetOwlさんにて証明書などを作成しています。
なんでこんなことを?
普通にググって設定したnginxを利用したサイトを、www.ssllabs.comで調べたところ、RatingがCとなりました。。このため、一応もうちょっとRatingをあげるには?と思い上記日付時点で設定を見直したので、メモとして残しておきます。
設定
Rating Aとなった、nginxの設定ファイルはこんな感じになります。
server { listen 443 ssl; ssl on; # SSL証明書 + 中間証明書を繋げたファイル ssl_certificate /etc/nginx/sslfiles/CERTIFICATE.cert; # 秘密鍵 ssl_certificate_key /etc/nginx/sslfiles/CERTIFICATE.key; ssl_session_timeout 5m; # TLSv1.2を明記+SSLv3, SSLv2は消す ssl_protocols TLSv1.2 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; : : }
- ダウンロードしSSL証明書と中間証明書をを繋げたファイルを作成して、ssl_certificateに設定する
- TLSv1.2を明記する。明記しないと、1.2が優先的に利用されない。記載順は問題ないようですが、一応先頭にしておきました。
- SSLv3は逆に消す。ssllabsのRatingではSSLv3が入っていると、POODLE attackの影響を受けるという理由で評価されません。
- SSLv2は入っていても、入っていなくてもRatingはAです。が、SSLv3消してるので、ついでにSSLv2も消しています。
さらに、nginxのバージョンをv1.13以上にするとTLSv1.3にも対応できるっぽいのですが、、それはまた時間を見つけてやろうと思います。