nginxの設定(SSL/TLS)
Qualys SSL Labsで確認しながら接続方法を改善しました。
最終結果 ↓
TLSv1.3の部分にAES_128_GCM_SHA256
が残っているから満点になっていないけれど、これはnginx側で設定しても無理っぽいので、とりあえず今回の目的は達成。Cipher Strengthの残り10点はopenssl側で後日設定する。
変更するにあたって、点数の変化が大きいのは以下の部分だと思う。
ssl_ciphersの部分で方式を限定しないと128bitのものとかが紛れ込んでしまうので…
ssl_protocols TLSv1.3 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_dhparam /etc/nginx/dhparam.pem;
どういう設定をすると安全性が上がるのかについては、以下のページで説明されている。
めんどくさい人は、
2.3 Use Secure Cipher Suites
って書いてあるところにおすすめの方式がリストアップされている。
そこを見るとわかる通り、TLSv1.2とv1.3にしてリストでおすすめされているのを使うとまあ問題ない。TLSのバージョン指定とかで古いブラウザが死んだりはする(IEはまあ気にしないでいいよね)。
ただ、最近Diffie-Hellman鍵交換(DHEから始まってるやつ)に脆弱性が発見されたらしいので(うちにはそこまで危険性はなさそうだけれど)対処すると結局みんな同じような設定になるんじゃないかという気もする。
128bitでも結構安全(Score的には80%超を達成できる)だけど、今回の設定は無駄に頑張ってより安全になるように設定した。