Настройка нескольких сертификатов SSL в Haproxy

Мой экземпляр haproxy обслуживает 2 домена (главным образом, чтобы избежать XSS на основном сайте).

Правила выглядят примерно так:

bind :443 ssl crt /etc/ssl/haproxy.pem

acl is_static   hdr_end(Host) -i example.com
acl is_api      hdr_end(Host) -i api.example.com
acl is_files    hdr_end(Host) -i example.io

redirect scheme https if !{ ssl_fc } is_static is_api

Теперь SSL использует /etc/ssl/haproxy.pem как сертификат по умолчанию, который является сертификатом для example.com, а не example.io.

Как я могу указать сертификаты для нескольких доменных имен?

21 голос | спросил Erik Aigner 12 ThuEurope/Moscow2013-12-12T21:37:01+04:00Europe/Moscow12bEurope/MoscowThu, 12 Dec 2013 21:37:01 +0400 2013, 21:37:01

2 ответа


52

Вы можете объединить все свои сертификаты в файлы, скажем, haproxy1.pem и haproxy2.pem или вы можете указать каталог, содержащий все ваши файлы pem.

cat cert1.pem key1.pem > haproxy1.pem 
cat cert2.pem key2.pem > haproxy2.pem

В соответствии с haproxy docs

Затем в config используйте что-то вроде этого:

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-с несколькими HTTPS-сайтов

Надеюсь, что это поможет.

ответил Rico 12 ThuEurope/Moscow2013-12-12T22:19:06+04:00Europe/Moscow12bEurope/MoscowThu, 12 Dec 2013 22:19:06 +0400 2013, 22:19:06
1

возможно, вы тоже можете это проверить:

/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

refs: https://github.com/msimerson/Mail-Toaster-6/wiki/How-to-for-Multiple-Domain-SSL-Certificates-with-HaProxy

ответил zx1986 19 MarpmMon, 19 Mar 2018 13:32:50 +03002018-03-19T13:32:50+03:0001 2018, 13:32:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132