SNI 多域 ssl apache iis

SNI multiple domain ssl apache iis

我们需要托管具有不同域的多个站点。 例如

a.test.dk
b.test.dk
a.test.fi
b.test.fi

据我所知,无论是在 apache 还是 iis 中,当使用域 ssl 证书时,您都需要 1 ip/host,这意味着我们必须购买 4 个证书和 4 个 IP 地址来托管它们

另一种选择是使用通配符证书,如果我们购买 *.test.dk 和 *.test.fi 我们可以使用 2 ip/addresses 和 2 个证书来托管相同数量的证书自从我们的 iis/apache 可以使用 sni 以来的站点数。

但现在我真正的问题是: 还有一种叫做多域 ssl

是否允许 运行 1 个 IP 地址下的所有 4 个站点?

因为我们目前正在为使用外部 ip 地址而苦苦挣扎。

好吧,你混淆了两件事。您混淆了通配符证书和 SNI(服务器名称指示)。它们绝对是针对类似问题的不同解决方案。

通配符证书不依赖 header 检查来加密您的流量,您只需将 DNS 指向您想要的 IP 地址,您的请求就会转到您在 IIS 中配置的任何站点。

SNI 与众不同,正是您想要的。 SNI 检查每个 HTTP 请求并根据主机 headers 找出您想要的 IIS 站点。在 SNI 存在之前,您无法检查 SSL 请求中的 headers,因为 headers 也被加密了。

使用 SNI,假设您拥有每个站点的证书(通配符证书或单站点证书、UCC 证书或它们的某种组合),您可以使用 SNI 检查每个 HTTP 请求并提供适当的 SSL 证书和站点.您可以为任意数量的网站执行此操作,并在所有网站上共享 1 IP:port 组合。

这里有一篇 WikiPedia 文章对其进行了更详细的解释:

http://en.wikipedia.org/wiki/Server_Name_Indication#Background_of_the_problem

这里有一篇关于如何在IIS 8及以上配置的文章:

https://www.digicert.com/ssl-certificate-installation-microsoft-iis-8.htm#multiple

在这些说明的第 18 步中,您可以启用 SNI。

这里有一篇关于如何在 Apache 2.2.12 及以上配置的文章:

https://www.digicert.com/ssl-support/apache-multiple-ssl-certificates-using-sni.htm