我一直使用 pound 来运行 mydomain.dk。现在我购买了一些其他域名和 SSL 证书,它们是 mydomain.no、mydomain.se 和 mydomain.eu。我的旧配置大致如下:
ListenHTTPS
Address 81.19.246.120
Port 443
Cert "/usr/local/etc/pound.keys/mydomain.dk.pem"
Service
BackEnd
Address 10.0.10.10
Port 8080
End
End
End
在类似的地方这里我已经看到我可以在服务部分使用 HeadRequire,但我希望 Host 标头与 Cert 一起使用,理想情况下是这样的
ListenHTTPS
Address 81.19.246.120
Port 443
HostAndCert "mydomain.dk" "/usr/local/etc/pound.keys/mydomain.dk.pem"
HostAndCert "mydomain.se" "/usr/local/etc/pound.keys/mydomain.se.pem"
HostAndCert "mydomain.no" "/usr/local/etc/pound.keys/mydomain.no.pem"
HostAndCert "mydomain.eu" "/usr/local/etc/pound.keys/mydomain.eu.pem"
Service
BackEnd
Address 10.0.10.10
Port 8080
End
End
End
关于如何实现这一目标,有什么建议或线索吗?
干杯
尼克
编辑:是的,在http://www.apsis.ch/pound/我发现这无法实现,每个 SSL 域需要一个 IP。当我无法使用 mydomain.* 这样的通配符 SSL 时,有没有好的替代方案?
答案1
在支持服务器名称指示之前,你最好的选择是获得统一通信证书其中包括您需要在一份证书中保护的所有名称。
答案2
TLS 有一个新特性可以解决这个问题:服务器名称指示. 它还没有得到广泛的支持。
答案3
这看起来像是一个讲述非常古老的故事的帖子,但我可以在这里提供一些解决方案:
我已阅读英镑官方网站在他们的“2010 年 6 月更新”中,该模块能够继续使用 openssl SNI(服务器名称指示),这使得构建 https 反向代理成为可能。
此外,在 pound 邮件列表中(我完全无法注册 :O),我读到有人完成了这个成功 SNI 获得英镑。我使用的是 Linux,并且我的浏览器支持 SNI,正如报告的那样这张支票。
但是,似乎只考虑了 pound 配置文件中指定的第一个证书。事实上,我遇到了与报告的问题完全相同的问题这里:第一个证书显示给客户端,如果它与域名相关,则可以,否则,不会再尝试更多证书,并在客户端浏览器上显示警告。
我的配置是这样的:
ListenHTTPS
Address 172.23.1.2
Port 443
Cert "/etc/pound/ssl/wiki.pem"
Cert "/etc/pound/ssl/frontend.pem"
Service
HeadRequire "Host: .*wiki.mydomain.net.*"
BackEnd
Address 192.168.0.110
Port 8080
End
End
Service
HeadRequire "Host: .*mydomain.net.*"
Backend
Address 192.168.0.103
Port 8080
End
End
End
是否有人知道如何强制检查每个证书直到找到合适的证书?
答案4
非常感谢您的回答,
这种特征确实存在wikipedia_SNI。
不幸的是,并非所有浏览器和操作系统都支持此功能,但正如我所写,我正在运行的操作系统和浏览器允许此功能。粗略地说,您必须在包含允许此功能的 openssl 库的浏览器上运行(vista 或更新版本)或实现此功能的浏览器(例如 Firefox > 3)。
而我所举的例子似乎证明了这个想法在英镑中是可能的。这也是我们想要实现的。