这可能听起来有点愚蠢,但我更像是一个开发人员,而不是服务器pipe理员,而且当我谈到IIS时,我非常头疼。 所以请在这里忍受。
我目前有一个客户端有一个专用的2K3框运行IIS6。 他们在这个盒子上托pipe一个网站,有两个域名parsing到该网站(domain1.com,domain2.com)。 该网站存储在典型的C:\ Inetpub \ www文件夹中。 另外,还有一部分网站受SSL保护。 有两个SSL证书,每个域一个。
当用户转到https:// domain1时。 一切都很好。 但是,当用户转到https:// domain2时。 Internet Explorer启动安全警告。 显然,这不是我们想要的。 (我不得不在URL中input空格,因为ServerFault不会让我在这里新build一个以上的URL)。
这里有一点信息是最好的,我可以给它关于IISpipe理器中的站点设置。
有两个网站在这里列出,“domain1.com”和“pipe理”。 当我进入domain1.com的属性时,IP地址的值为“(All Unassigned)”。
在高级下,“domain2.com”列出的IP地址为“默认”。 此外,在“此Web站点的多个SSL身份标识”中,有一个条目的IP地址为“默认”,标准SSL端口为443。
我可以在“目录安全性>查看证书”下查看domain1.com的证书。 在那里似乎一切都好。
因此,回顾一下:我正在尝试为单独的域设置单独的SSL证书,这两个域都导致相同的地方。 这可能吗? 如果任何人都可以向我解释这个过程(并尽可能地减less这个过程),或者至less把我指向正确的方向,这将不胜感激。
请让我知道,如果这没有任何意义,或者如果我没有提供足够的(或正确的)信息。
您不能使用带有SSL的虚拟主机,因此要使用SSL来托pipe两个站点,您必须拥有2个IP地址,每个IP地址都有一个特定的主机和ssl证书绑定到它。
简而言之,您的服务器上需要2个IP地址,一个绑定到domain1.com,另一个绑定到domain2.com,2个IIS站点一个用于domain1.com,一个用于domain2.com。 他们都可以提供相同的内容,但需要分开的网站。
Apache支持所谓的SNI( 见这里 ),它允许你使用SSL做虚拟主机,但目前不支持IIS。
最好的解决scheme是使用统一通信证书 ,允许您在一个证书中包含多个域。 只要在证书中包含这两个域,就完成了。 无需担心额外的IP地址或不同的端口等
您可以使用SNI SSL证书。 这是允许你有任何网站具有相同的IP地址,因为没有IP检查将发生,但主机HTTP / 1.1标题将被检查,以validationSSL证书。
PS:旧的浏览器不能检查SNI SSL证书,也不能截取透明的代理。
我无法评论,但IIS绝对支持SNI(不是IIS 6,现在已经十多年了)。 请参阅以下文章,了解有关SNI的相当丰富的讨论: 同一IP地址和同一端口上的多个SSL域? 请注意,由于Heartbleed漏洞,SSL 3.0现在被认为是不安全的,所以TLS 1.0应该是最低支持的encryption,唯一的缺点就是它需要HTTP 1.1,这并不是很重要的要求。