Что-то вроде этого произошло на наших серверах также., я помню создававший CNAME и вручную предоставление его общедоступный IP. В другом сценарии мы закончили тем, что создали отображение между
CNAME-> другая зона. и
another-zone-> общедоступный IP (это работало, потому что IP был зафиксирован - не мог бы работать если его DHCP),
Вы можете объединить все ваши сертификаты в файлы, например, haproxy1.pem
и haproxy2.pem
, или вы можете указать каталог, содержащий все ваши файлы pem.
cat cert1.pem key1.pem > haproxy1.pem
cat cert2.pem key2.pem > haproxy2.pem
Согласно документации haproxy
Затем в конфигурации используйте что-то вроде этого:
defaults
log 127.0.0.1 local0
option tcplog
frontend ft_test
mode http
bind 0.0.0.0:443 ssl crt /certs/haproxy1.pem crt /certs/haproxy2.pem
use_backend bk_cert1 if { ssl_fc_sni my.example.com } # content switching based on SNI
use_backend bk_cert2 if { ssl_fc_sni my.example.org } # content switching based on SNI
backend bk_cert1
mode http
server srv1 <ip-address2>:80
backend bk_cert2
mode http
server srv2 <ip-address3>:80
Подробнее о SNI
Имейте в виду, что поддержка SSL находится на стадии разработки для haproxy, а также что он, по-видимому, значительно снижает производительность.
В этом потоке обсуждаются и другие решения: https://stackoverflow.com/questions/10684484/haproxy-with-multiple-https-sites
Надеюсь на это помогает.
, возможно, вы тоже можете это проверить:
/etc/ssl/private/crt-list.txt:
/etc/ssl/private/mydomain.pem
/etc/ssl/private/myotherdomain.pem
haproxy.cfg:
frontend https-in:
bind *:443 ssl crt-list /etc/ssl/private/crt-list.txt
Больше не нужно объединять или указывать список сертификатов, просто укажите папку:
frontend public
bind *:443 ssl crt /etc/haproxy/ssl/
Примечание: убедитесь, что папка не пуста и присутствуют действительные файлы PEM, иначе HAProxy будет не запускается.