У меня есть проблема с одним определенным клиентом, который поражает мою haproxy подсистему балансировки нагрузки. Сообщение об ошибке в журналах haproxy:]
incoming_ssl/1: SSL handshake failure
Рассматриваемый клиент, кажется, некоторый клиент Java Apache или сервер ActiveMq - так или иначе, это - удаленный сервер, который мы имеем контроль дрейфа нуля.
Используя ssldump, я вижу эти строки:
11 5 0.4152 (0.1649) C>S Alert
level fatal
value certificate_unknown
11 0.4152 (0.0000) C>S TCP FIN
Используя завихрение / браузер все выглядит хорошо, и я сделал некоторые проверки ssl, которые не сообщают о таких проблемах.
Я разделил как можно больше из своего haproxy файла конфигурации для диагностирования проблемы. Я даже протестировал удар бэкенда (NodeJS) сервер непосредственно, который хорошо работает - клиент может соединиться. Это - defo haproxy, я просто не знаю, как я могу зафиксировать его.
Мой основной haproxy conf файл похож на это:
frontend incoming_ssl
bind *:443 ssl crt /etc/haproxy/cert.key ca-file /etc/haproxy/cert.pem ciphers ECDHE-RSA-AES256-SHA:RC4-SHA:RC4:HIGH:!MD5:!aNULL:!EDH:!AESGCM
acl flume hdr_dom(host) -i dom.ain.com
use_backend flume if flume
backend flume :80
server flume 10.40.14.1:8000 weight 1 maxconn 1000 check inter 2000
Попытались использовать ssl бэкенд также - та же проблема. Попытались удалить раздел шифра также.
Использую godaddy сертификаты, которые кажутся хорошо для завихрения / браузеры если немного раздражения для установки.
Есть ли что-то еще, что я могу сделать для получения этой работы? Выполняю выпуск 26 haproxy 1.5 последнего достижения, но также попробовали другие недавние выпуски.
Этот клиент не признает сертификат действительным.
Промежуточные сертификаты Godaddy должны быть включены в файл, загруженный "crt".
Убедитесь, что вся цепочка сертификатов правильно включена в серверный сертификат:
crt /etc/haproxy/cert.key
Из документации haproxy для ключевого слова "crt":
Некоторые CA (например, Godaddy) предлагают выпадающий список типов серверов, которые не включают HAProxy при получении сертификата. Если это произойдет не забудьте выбрать веб-сервер, который, по мнению ЦА, требует промежуточный CA (для Годэдди, выбор Apache Tomcat получит правильный пучок, но многие другие, например nginx, приводят к неправильному пучку что не будет работать для некоторых клиентов).
Я думаю, вы ошибаетесь насчет того, что делает ca-file.
Сделайте следующее:
cd /etc/haproxy
cat cert.pem cert.key > cert.bundle
bind *:443 ssl crt /etc/haproxy/cert.bundle ciphers ECDHE-RSA-AES256-SHA:-RC4-SHA:HIGH:!MD5:!aNULL:!EDH
Я также установил haproxy (2016-05) и в журнале я получил ошибку
ssl / 1: Ошибка установления связи SSL
Похоже, что ssh v2 ждет сервера, прежде чем говорить , из-за чего haproxy ошибочно принял его за ssl-соединение.
Исправление заключалось в добавлении следующих строк в ~ / .ssh / config
Host my.host.com
HostName my.host.com
Port 443
User MeMe
ProxyCommand openssl s_client -connect my.host.com:443 -quiet