我试图限制nginx来避免使用密钥交换的DHalgorithm的密码。
为了强制这个,我把ssl_ciphers设置为一个套件:
ssl_ciphers 'AES256-GCM-SHA384';
重新启动nginx后,我可以从访问日志中看到它仍然select其他的密码(在这种情况下,DHE-RSA-AES128-GCM-SHA256):
10.162.10.235 [02/Feb/2017:15:09:09 +0000] "GET /images/favicon.ico HTTP/1.1" 200 0 "https://example.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" 0.001 - "" "DHE-RSA-AES128-GCM-SHA256" "TLSv1.2" "-" "xxx" "r" - -
我必须误解ssl_ciphers指令是如何工作的。 我也尝试将它设置为'!DH:!ECDH',但是看起来它似乎完全不同意兼容密码。
应该设置什么来强制使用AES256-GMC-SHA384?
我重新启动nginx,但我相信它只是重新启动主进程,并在该进程中加载新的configuration。 现有的工人stream程显然还是有旧的configuration。
我正在重新启动导致问题的nginx。 我正在使用这个命令:
service nginx restart
事实certificate,有几种不同的方法来强制nginx重新加载它的configuration,但configuration服务的方式并没有使用任何这些方法。
就我的目的而言,停止服务并等待一两分钟就足够了,然后再开始服务。