我有一个工作的have设置,它为多个租户域执行TLS终止操作。
今天,我在证书池中添加了一个通配符证书(称为*.foo.com)。当浏览器进入https://fnord.foo.com时,haproxy将正确地选择此证书。
然而,由于任何愚蠢的原因,这个用户希望他们的主域是https://www.fnord.foo.com。当通配符证书直接安装在IIS中,具有专用的IP绑定,并且试图绕过haproxy时,这是可行的,尽管我不认为它应该根据SSL处理的严格定义(请参阅这个答案 )。尽管如此,浏览器接受一个前缀www,即使它们不应该,并且为了使这个客户高兴,我们希望它发生无论如何。当传入域为www.fnord.foo.com时,是否有任何方法告诉haproxy使用特定的证书?
发布于 2016-02-18 22:32:33
不确定证书是否覆盖该域,但您可以尝试将该证书作为缺省值加载,如下所示
bind 0.0.0.0:443 ssl crt /etc/haproxy/wildcard.foo.com.pem crt /etc/haproxy/other.certs.d通过这种方式,任何非SNI匹配的请求都将回到/etc/haproxy/通配符/foo.com.pemcert中。
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
https://serverfault.com/questions/758192
复制相似问题