我使用的是 Domino 9.0.1 FP5。我计划托管多个网站,所有网站都将使用 SSL 进行访问。我想为所有网站使用一个 IP 地址。我将为域名获取通配符证书,这样每个网站都将拥有相同的域名,但子域名不同。
例子:
site1.example.com
site2.example.com
我在 Domino Administrator 中为每个站点创建 Internet Site 文档。文档指出,使用 SSL 时,必须在“映射到此站点的主机名或地址”字段中指定 IP 地址。
我理解这背后的原因 - 服务器在解密 http 标头之前不知道主机域,但就我而言,由于我计划使用通配符证书,因此我希望能够告诉服务器使用此证书,而不管主机名是什么。有什么办法吗?
答案1
来自技术说明:
但是,如果在多个“网站”文档中输入相同的 IP 地址,则无论在 Web 浏览器中输入哪个主机名,都只有第一个 IP 地址用于 SSL 连接。
因此,显然您想要做的事情本身不受支持。但在购买之前,生成自签名通配符证书并进行测试非常简单。
答案2
由于您想使用通配符证书,因此无论您将 SSL 证书放在哪里,Domino 都会始终使用找到的第一个证书。只需将您的通配符证书放在域的默认文档中,它就会使用在那里为所有网站配置的 kyr 文件,并忽略其他站点文档的设置。我过去这样做过,只要能找到 kry 文件,就不会出现问题。为了 100% 确定,只需将相同的 kyr 文件放在所有 internet 站点中,并将 ip 地址仅放在其中一个文档中。
编辑:顺便说一句:在德国,您只需花费 300 欧元就可以获得一张为期 3 年的通配符证书...即使它在您的特殊情况下不起作用,您也可以将它用于很多服务/站点/工作,所以几乎总是值得购买一张...
答案3
不幸的是,我发现唯一的方法是在流量到达 Domino 服务器之前通过 haproxy、nginx 或类似的东西解密流量。
解密后,将流量以 HTTP 形式发送到 Domino,它将根据主机头选择正确的站点。
这样做实际上也有性能上的好处,因为 Domino 在 SSL/TLS 方面效率不高,所以响应时间应该会略有改善。