Опубликовано пользователем JKey

Как настроить терминирование SSL на HAPROXY
В целом особых сложностей с организацией SSL на стороне haproxy нет. Однако как всегда есть определенные ньюансы, которые сейчас запротоколируем, дабы не перегружать свою память.
Итак само подключение ssl делается подобным волшебным заклинанием:
bind 192.168.220.8:443 ssl crt /etc/haproxy/ssl/site_domain_com.pem name https
Что такое *.pem ?
В отличие от Apache и Nginx у HAPROXY не разделяется файл ключа и сертификата. Все лежит в одном файле site_domain_com.pem и важно в какой последовательности!
cat req_site.domain.com.key \ site_domain_com.crt \ root_pem_rucenter_gold_ssl_1.crt \ intermediate_pem_rucenter_gold_ssl_1.crt \ intermediate_pem_rucenter_gold_ssl_2.crt > cfo_metcombank_ru.pem
Т.е. сначала идет ключ потом сам сертификат, а потом уже промежуточные. Если налажаем то получим такие матюги в логе:
[ALERT] 313/102152 (29996) : parsing [/etc/haproxy/haproxy.cfg:100] : 'bind 192.168.220.8:443' : inconsistencies between private key and certificate loaded from PEM file '/etc/haproxy/ssl/site_domain_com.pem'. [ALERT] 313/102152 (29996) : Error(s) found in configuration file : /etc/haproxy/haproxy.cfg [ALERT] 313/102152 (29996) : Proxy 'HAFRONT_prod': no SSL certificate specified for bind '192.168.220.8:443' at [/etc/haproxy/haproxy.cfg:100] (use 'crt'). [ALERT] 313/102152 (29996) : Fatal errors found in configuration.