我在 IIS 7 服务器上为 2 个不同的网站使用 SSL 时遇到了麻烦。请参阅以下设置:
网站1:my.corporate.portal.com
网站 1 的 SSL 证书:*.corporate.portal.com
https/443 绑定到 my.corporate.portal.com
website2:client.portal.com 为以下对象颁发 SSL 证书:client.portal.com 当我尝试在 IIS7 中使用客户端的证书绑定 https 时,我没有选项可以输入主机名(灰色),并且当我选择“client.portal.com”证书时,我在 IIS 中收到以下错误:
At least one other site is using the same HTTPS binding
and the binding is configured with a different certificate.
Are you sure that you want to reuse this HTTPS binding
and reassign the other site or sites to use the new certificate?
如果我单击“是”,my.corporate.portal.com 网站将停止使用正确的 SSL 证书。
你能提出一些建议吗?
答案1
通常,每个 SSL 站点都需要一个单独的 IP,因此如果您尝试绑定到同一个 IP,您将看到上述错误。
这是由于 SSL 的工作方式所致。服务器无法在握手过程中读取 HTTP 主机标头,因此无法使用该标头信息来选择要使用哪个站点(和证书)。因此,IIS 中的证书基本上是按 IP 绑定的,而不是按站点绑定的。
如果您拥有适用于多个站点的通配符证书或 ASN 证书,则可以按如下方式进行设置:
- 将证书绑定到 IP 上的第一个站点
- 对于主机头站点,在 inetsrv 文件夹中执行以下命令:
appcmd set site /site.name:"<IISSiteName>" /+bindings.[protocol='https',bindingInformation='*:443:<hostHeaderValue>']
将 和 替换为适当的值(例如,Website1 和 www.example.com)。
信噪比在 IIS8 中受支持,允许在同一 IP 上使用多个不相关的 SSL 站点。请注意,SNI 仅在现代浏览器中受支持,因此如果您运行的是受众广泛的商业站点(例如运行旧版 Internet Explorer 的 Windows XP 用户),则可能会给您带来问题。
答案2
为 Amazon 实例实施 Elastic Load Balancing 解决了该问题(http://aws.amazon.com/elasticloadbalancing/)