nginxの設定(SSL/TLS)

Qualys SSL Labsで確認しながら接続方法を改善しました。

www.ssllabs.com

 

終結果 ↓

f:id:oimo_mochi:20201208113441p:plain

とりあえずA+

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_ecdh_curve 'secp384r1';
    ssl_dhparam /etc/nginx/dhparam.pem;

 

どういう設定をすると安全性が上がるのかについては、以下のページで説明されている。

github.com

めんどくさい人は、

2.3 Use Secure Cipher Suites

って書いてあるところにおすすめの方式がリストアップされている。

そこを見るとわかる通り、TLSv1.2とv1.3にしてリストでおすすめされているのを使うとまあ問題ない。TLSのバージョン指定とかで古いブラウザが死んだりはする(IEはまあ気にしないでいいよね)

ただ、最近Diffie-Hellman鍵交換(DHEから始まってるやつ)に脆弱性が発見されたらしいので(うちにはそこまで危険性はなさそうだけれど)対処すると結局みんな同じような設定になるんじゃないかという気もする。

 

128bitでも結構安全(Score的には80%超を達成できる)だけど、今回の設定は無駄に頑張ってより安全になるように設定した。