no-image

[nginx]Let’s EncryptでSSLのセキュリティをA+にするまで

potproject.net Advent Calendar 2016
5日目の記事です。

nginx advent calenderになりつつある。この頃。
10日目くらいからアプリやガジェット系のネタを入れていく次第です。


先日の記事で、nginxでLet’s Encryptを使ってSSLの設定行いました。
しかし、指摘したようにこれだとセキュリティがイマイチなので、
再度設定し直してセキュリティをさらに向上させようと思います。

まず、現在のセキュリティがどのレベルかを見るため、
Qualys SSL Labs の SSL脆弱性診断を使って、テストしてみます。

bef
こういう結果になりました。特に鍵交換が弱いですね。
この部分に関してはDH鍵交換のデフォルトが1024ビットのため、既に弱くなっているからだとか。
まあ1024ビットでも高い専用機じゃないと解読できないレベルらしいので、
こんなしょぼい個人サイトだったらまあ本来はまず問題はないんですが・・・
2048ビットのDH鍵交換をopensslで作成し、使用します。

DH交換用の鍵作成

セキュリティを高める鍵だけあって、サーバーによっては生成にかなり時間がかかります。こっちだと2分くらい。
自分も生成中にこの記事を書いてました。

他にも、前に紹介したMozilla SSL Configuration Generatorを参考に、いろいろと設定します。

後、せっかくなのでSSL設定を共通化できるようにSSLだけ設定をまとめることにします。
nginxの場合、 ** include /etc/nginx/ssl.conf; ** という風に書けばそのままインクルードして使えます。

** /etc/nginx/ssl.conf; **

これをインクルードして設定。nginxの再起動も忘れずに。

af

これでA+になりました。やったぜ。

・・・でもこれが原因でレスポンスなんかがめちゃくちゃ遅くなるんだったら戻しますけどね。
セキュリティより可用性の方が大事ですわな。