簡単な設定のようですが、TLSv1.1を無効にすることはできません。
nginx.conf/etc/nginx内:
ssl_protocols TLSv1.2;
ドメイン設定 last_nginx.conf(nginxDomainVirtualHost.phpのPleskテンプレートを介して変更):
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA;
ssl_prefer_server_ciphers on;
ssl_dhparam /etc/nginx/ssl/server.dh_pem;
それでもTLSv1.1は有効であり、opensslでテストすると次のように返されます。
openssl s_client -tls1_1 -connect mydomain.com:443 < /dev/null
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.1
Cipher : DHE-RSA-AES256-SHA
Session-ID: E298E87276A0776AF736439AF260FE0F92B17330ED97D5F3C2F87CF02C3F75A8
ここで何が欠けていますか? TLSv1.2のみが指定されているにもかかわらず、TLSv1.1がまだ有効になっているのはなぜですか?
TLSv1.1を無効にする方法の提案はありますか?
ありがとう!
完全に(サニタイズされた)構成を投稿しなかったため、これは推測ですが、複数のサーバー間で共有listen
ブロックを使用している可能性があります。構成構文によって可能に見えますが、実際には、同じserver
を共有するlisten
ブロック間で異なる暗号仕様を持つことはできません。
すなわち:
server {
listen 443 ssl;
server_name tls.example.com;
}
server {
listen 443 ssl;
server_name tls12.example.com;
ssl_protocols TLSv1.2;
}
ここでtls12.example.comをカールすると、1.1がサポートされていることがわかります。ただし、tls.example.com server
に同じ制限を追加すると、1.2のみがサポートされます。
唯一の実際の修正は、制限に専用IPを使用するか、その(ip、port)の組み合わせのすべてのserver
ブロックが同じSSL暗号設定を持つようにすることです。
補足:上記の説明は、HTTP/2の有効化/無効化にも当てはまります。