Qualys SSL LabsでスコアAがとれるnginxのTLS/SSLの設定方法
この記事は
この記事は、2015/4/7現在、Qualys SSL LabsでスコアAがとれる、nginxのTLS/SSLの設定方法について説明するものです。
TLS/SSLと書いていますが、後述しますがSSLは使用しません。
また、TLS/SSLとはなにか、といった話題については触れません。細かい解説もしません。細かい解説は参考文献を参照してください。
具体的なconfファイルの記述例
server { listen 443 ssl; #実際の設定方法に合わせる server_name localhost; #nginxのバージョンを表示しないようにする server_tokens off; ssl on; #中間証明書とbindingしたものを指定する ssl_certificate /path/to/server.crt; #openssl req -nodes -newkey rsa:2048 -keyout YOURDOMAIN.key -out YOURDOMAIN.csr こんなかんじでkeyとcsrを作成した ssl_certificate_key /path/to/server.key; #SSLセッションを10分保持する ssl_session_cache builtin:1000 shared:SSL:10m; #もうSSLはv3も含めて使わない ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #古いcipherは使わない ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !kECDH !DSS !MD5 !EXP !PSK !SRP !CAMELLIA !SEED'; #ブラウザ側にcipherを選ばせないようにする ssl_prefer_server_ciphers on; #2048bitで生成したPFS cipherを使用する ssl_dhparam /path/to/pfs2048.pem; location / { #書きたいことを書く } }
注意
上記設定を行うと、IE6とJava1.6に影響が出ます。出ますが…古いしきっと誰も使っていないでしょう。
次のステップ
HSTSを有効にすべき
add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains;'
それ用のヘッダを差し込むようにすればできる。 これでスコアA+を獲得することが可能。
参考文献
Qualys SSL Labs - Projects / SSL/TLS Deployment Best Practices