haproxy、TLS 终止、通配符证书、附加“www”前缀

haproxy、TLS 终止、通配符证书、附加“www”前缀

我有一个有效的 haproxy 设置,正在为多个租户域执行 TLS 终止。

今天,我向证书池中添加了一个通配符证书(称为 *.foo.com)。当浏览器访问时,haproxy 会正确选择此证书https://fnord.foo.com

然而,出于某种愚蠢的原因,该用户希望他们的主要域名是https://www.fnord.foo.com。当通配符证书直接安装在 IIS 中,使用专用 IP 绑定,并尝试绕过 haproxy 访问 URL 时,这作品,尽管我认为根据 SSL 处理的严格定义,它不应该如此(请参阅这个答案)。尽管如此,浏览器还是会接受前缀 www,即使它们不应该接受,为了让这个客户端满意,我们无论如何都希望它能接受。当传入域是 www.fnord.foo.com 时,有没有办法告诉 haproxy 使用该特定证书?

答案1

不确定证书是否涵盖该域,但您可以尝试将该证书作为默认证书加载,如下所示

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

相关内容