WebサイトのSecure証明書設定評価をA以上にする
前回のHTTPS対応に引き続き、今度はQualys SSL LabsというWebサイトでSSLSererの評価を行いました。
設定できました。A+になりました。対応ブラウザもIE6とJava6が非対応ということなので、こんなもんでまぁいいかなと思っています。
参考にしたWebサイトはたくさんありすぎてわけがわからないことになりました。基本的に検証結果で評価が低くなる原因など記載されていたので、それをググって評価を上げていきました。
Ghost.conf
## blog.ikenie3.org
server {
listen 443 ssl;
server_name blog.ikenie3.org;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
# https://weakdh.org/sysadmin.html
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-SHA2\
56:RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-S\
HA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES\
128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:A\
ES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!E\
XPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
# Diffie-Hellman
ssl_dhparam /etc/nginx/secure/dhparam.pem;
#
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:10m;
ssl_certificate /etc/letsencrypt/live/blog.ikenie3.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/blog.ikenie3.org/privkey.pem;
access_log /var/log/nginx/blog.ikenie3.org.s.access.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
server {
listen 80;
server_name blog.ikenie3.org;
# Let's Encrypt Support
location /.well-known {
root /home/www/www.ikenie3.org;
}
# Redirect to https
location / {
rewrite ^/(.*)$ https://blog.ikenie3.org/$1;
}
}
ディフィー・ヘルマン(Diffie-Hellman)鍵交換設定
設定項目は下記
ssl_dhparam /etc/nginx/secure/dhparam.pem;
この設定は Cipher Suites
鍵交換方法の設定?(いまいちわかっていない)です。デフォルトを使用していたところ Logjam Attack
に関係する箇所で1024bitではweakと表示されていたので2048bit対応しました。
# 2048bit dhparam_<date>_2048.pem を作成
openssl dhparam 2048 -out dhparam_`date +'%Y%m%d'`_2048.pem
# nginx配下のディレクトリにpemファイルを移して移動
sudo mv dhparam_20160831_2048.pem /etc/nginx/secure/
cd /etc/nginx/secure
# dhparam.pemのシンボリックリンクを作成
sudo ln -s dhparam_20160831_2048.pem dhparam.pem
# nginxのリロード
sudo /etc/init.d/nginx reload
次はLet's Encryptの証明書更新設定について書こうと思います。