Назад | Перейти на главную страницу

haproxy, завершение TLS, сертификат подстановки, дополнительный префикс www

У меня есть работающая установка haproxy, которая выполняет завершение TLS для нескольких доменов клиентов.

Сегодня я добавил сертификат с подстановочными знаками (назовите его * .foo.com) в свой пул сертификатов. haproxy правильно выбирает этот сертификат, когда браузер переходит на https://fnord.foo.com.

Однако по какой-то глупой причине этот пользователь хочет, чтобы его основным доменом был https://www.fnord.foo.com. Когда сертификат с подстановочными знаками устанавливается непосредственно в IIS с выделенной привязкой IP, и URL-адрес пытается обойти haproxy, это работает, хотя я не думаю, что это должно соответствовать строгому определению обработки SSL (см. этот ответ ). Тем не менее, браузеры принимают префикс www, даже если они не должны этого делать, и чтобы этот клиент был доволен, мы все равно хотели бы, чтобы это произошло. Есть ли способ указать haproxy использовать этот конкретный сертификат, когда входящий домен - www.fnord.foo.com?

Не уверен, что сертификат будет охватывать этот домен, но вы можете попробовать загрузить этот сертификат по умолчанию, например

bind 0.0.0.0:443 ssl crt /etc/haproxy/wildcard.foo.com.pem crt /etc/haproxy/other.certs.d

Таким образом, любые запросы, не соответствующие SNI, вернутся к сертификату /etc/haproxy/wildcard.foo.com.pem согласно

https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#5.1-crt

Другой способ заставить его использовать фильтры sni в соответствии с

https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#5.1-crt-list