この記事は
http://mkuma.hatenablog.com/entry/2015/04/07/142649
のコピペです。
この記事は
この記事は、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+を獲得することが可能。
参考文献
[https://www.ssllabs.com/projects/best-practices/index.html]