Я использую HAProxy 1.7.5 и openssl 1.1.0f (из Debian 9.5 stabel) для обслуживания соединений TLS. Теперь есть клиенты, предлагающие алгоритмы подписи на основе SHA-384 и SHA-512 в приветственном сообщении клиента. Таким образом, HAProxy использует RSA + SHA512 в соглашении о ключах DH. К сожалению, из-за ошибки программного обеспечения клиенты вылетают при выборе любого алгоритма подписи, использующего алгоритм хеширования, кроме SHA-256.
Это не может быть легко исправлено на стороне клиента, поскольку мы говорим об аппаратных устройствах. Поэтому мне нужен обходной путь на стороне сервера, чтобы отключить алгоритмы подписи на основе SHA-384 и SHA-512 в Haproxy. До сих пор мы могли это сделать, потому что использовали IIS, который, в свою очередь, использует SCHANNEL (реализация Windows TLS). С помощью этого решения можно деактивировать алгоритмы подписи.
Есть ли способ отключить определенные алгоритмы подписи TLS в HAProxy?
По сути, это репост этого вопроса - надеюсь, что тем временем на него был дан ответ: HAProxy настроить расширение алгоритмов подписи TLS 1.2
Решение для меня: установить haproxy 1.8.17 с openssl 1.1.1a из тестирования Debian. По какой-то причине эта комбинация использует RSA + SHA256 в качестве алгоритма подписи при обмене ключами DH.
Намерение состояло в том, чтобы использовать файл конфигурации openssl (/etc/ssl/openssl.cnf) для установки алгоритма подписи.
[ system_default_sect ]
SignatureAlgorithms = RSA+SHA256
ClientSignatureAlgorithms = RSA+SHA256
Этот параметр доступен только начиная с openssl 1.1.1. Но для меня это не дает никакого эффекта. В любом случае, описанной выше программной комбинации вполне достаточно.
Я был бы признателен, если бы кто-нибудь мог предложить мне объяснение такого поведения.