我正在尝试限制 nginx 以避免使用使用 DH 算法进行密钥交换的密码。
为了强制执行此操作,我将 ssl_ciphers 设置为单个套件:
ssl_ciphers 'AES256-GCM-SHA384';
重新启动 nginx 后,我可以从访问日志中看到它仍然选择其他密码(在本例中为 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,应进行什么设置?
答案1
我正在重新启动 nginx,但我相信它只是重新启动了主进程并在该进程中加载新配置。现有的工作进程显然仍具有旧配置。
我重新启动了 nginx,导致出现此问题。我使用了以下命令:
service nginx restart
事实证明,有几种不同的方法可以强制 nginx 重新加载其配置,但服务配置的方式并未使用任何这些方法。
就我的目的而言,只需停止服务并等待一两分钟再重新启动就足够了。