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の証明書更新設定について書こうと思います。