nginxでSSLの設定を見直して、最高評価A+を得る方法

nginxでSSLの設定を見直して、最高評価A+を得る方法

2016年2月3日 オフ 投稿者: ぱる☆ミ

“SSL”と言った方が世間的には通りが良いのでこんなタイトルにしたけれども、既にSSLは使うべきでは無いプロトコルなのです。

ちなみに我が minkymoon.jp は https にも対応しているのですが、ただ対応するだけでは面白くないので最新の http/2.0 にも対応しています!

といっても、nginxは最新バージョンであればserverステートメントに設定を1行書くだけのお手軽設定。

server {

    listen       443 http2;

    server_name www.minkymoon.jp minkymoon.jp;

(以下略)

ね?簡単でしょ。
あとはSSL (TLS)設定のチューニング。ちなみに、サイトがどの程度強固かを簡単に判別してくれるQUALYS SSL LABS(公式サイト)で https://minkymoon.jp/ を判定して貰ったところ、最高評価の A+ を頂きました! まるでモンドセレクションの金賞を頂いたような気分です。

前述のサイトでは誰でも任意のサイトを検証出来るので実施してみて下さい。

うちでテストした場合は、数分の検証の後、以下の検証結果になると思います。(ならなかったら、私が設定のメンテナンスをサボっている証拠w)

TLS setting

ここに至るまでは色々と設定の検証を繰り返してきたのですが・・・nginxであれば以下の設定を入れればA+になるはずです。

ssl_dhparam /etc/nginx/dhparams.pem;
ssl_session_cache shared:ssl:10m;
ssl_session_timeout 24h;
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;

add_header Strict-Transport-Security ‘max-age=31536000; includeSubDomains;’;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ‘ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA’;

あ、そうそう。ssl_dhparamについては

openssl dhparam 2048 -out /etc/nginx/dhparams.pem

 

というコマンドで作成することが出来るのでご参考まで。

 
うちで使っている「さくらのVPS」は手軽に設定も出来るしサーバも安定しているのでオススメです。