我使用 HAProxy 1.7.5 和 openssl 1.1.0f(来自 Debian 9.5 稳定版)来提供 TLS 连接。现在有客户端在客户端问候消息中提供基于 SHA-384 和 SHA-512 的签名算法。因此 HAProxy 在 DH 密钥协议中使用 RSA+SHA512。不幸的是,由于软件错误,当选择使用 SHA-256 以外的哈希算法的任何签名算法时,客户端会崩溃。
由于我们讨论的是硬件设备,因此无法在客户端轻松修复此问题。因此,我需要一个服务器端解决方法来禁用 Haproxy 中基于 SHA-384 和 SHA-512 的签名算法。到目前为止,我们可以这样做,因为我们使用的是 IIS,而 IIS 又使用 SCHANNEL(Windows TLS 实现)。使用此解决方案可以停用签名算法。
有没有办法停用 HAProxy 中的特定 TLS 签名算法?
本质上这是这个问题的转发 - 希望它已经得到回答:HAProxy 配置 TLS 1.2 签名算法扩展
答案1
对我来说,解决方案是:安装来自 Debian 测试版的 haproxy 1.8.17 和 openssl 1.1.1a。出于某种原因,此组合在 DH 密钥交换中使用 RSA+SHA256 作为签名算法。
目的是使用 openssl 配置文件 (/etc/ssl/openssl.cnf) 来设置签名算法,例如
[ system_default_sect ]
SignatureAlgorithms = RSA+SHA256
ClientSignatureAlgorithms = RSA+SHA256
此设置自 openssl 1.1.1 起可用。但对我来说没有任何效果。无论如何,上述软件组合似乎足够了。
如果有人能为我解释这种行为,我将不胜感激。