![无法在 Nginx 中启用特定密码套件](https://linux22.com/image/793060/%E6%97%A0%E6%B3%95%E5%9C%A8%20Nginx%20%E4%B8%AD%E5%90%AF%E7%94%A8%E7%89%B9%E5%AE%9A%E5%AF%86%E7%A0%81%E5%A5%97%E4%BB%B6.png)
我有一个硬件,其默认密码套件列表已过时。我们通过配置更新该列表,但要获取配置,它首先需要与配置服务器通信。
我已经对握手进行了数据包捕获,默认配置中支持的最安全密码套件是TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
。我知道由于缺乏前向保密性,不建议使用 ECDH 密钥交换,但我还是想启用它。但是,我没有在输出中看到此条目,openssl ciphers
并且 Nginx 忽略了我在配置中启用它的尝试。
我的环境是 Nginx 1.20,使用 OpenSSL 3.0.7 构建,运行在 Alma Linux 9.3 上。我已经尝试过了,update-crypto-policies --set LEGACY
但没有成功。
TLS_RSA_PSK_WITH_AES_128_CBC_SHA
有什么方法可以启用此密码套件?它是否太弱以至于甚至从 LEGACY 加密策略(仍允许类似操作)中完全删除?
答案1
我在评论中得到了答案,也得到了同一个用户的答案Stack Overflow 上的答案类似的问题:
静态 ECDH 套件在 0.9.x 后期部分实现,在 1.0.0-2 中完全实现,尽管使用 GCM(或其他 AEAD)或 SHA-2 的套件特定于 TLS1.2,因此仅在 1.0.1-2 中工作。相比之下,静态 DH(现在称为静态 FFDH 以避免歧义)套件最初并未实现,并在 1.0.2 中添加。然而 1.1.0 及更高版本(即 SMACK 和 Heartbleed 之后)完全用一种新的更严格的逻辑取代了随时间累积的握手逻辑,并且在此过程中它删除了静态 ECDH 和静态 FFDH 的实现。它还删除了导出套件和 SSLv2 的代码,这些代码甚至不再可构建,相比之下,SSLv3 在 1.1.0 以上版本中默认被禁用(这也是 POODLE 之后的第一个功能更改版本),但如果您真的想要,仍然可以启用。
他们会消灭一个密码套件系列,这似乎很奇怪,但似乎它们从来都没有那么受欢迎。