3

我一直在寻找几个小时来找到我的问题/问题的解决方案,虽然我相信我已经能够澄清我遇到问题的原因,但我一直无法找到解决方案。

我有一台服务器托管多个网站,其中几个网站正在使用 SSL 证书。我有一些所有站点都可以访问的共享图像,并且阻止 SSL 站点上的非安全错误的方法是从https://www.example-shared-image-server.com/images/imagename提供这些共享图像。 jpg

这工作得很好,直到我注意到在 Windows XP 上使用 Internet Explorer 时,它会给出消息“此网站的安全证书存在问题”。然后我确定这是因为它为服务器上的不同域获取证书。这与使用 SSL 证书在一台服务器上托管多个站点有关。

假设我有四个站点,只有前两个站点安装了 SSL 证书。

https://www.one.com
https://www.two.com
http://www.three.com
http://www.four.com

并且不要忘记以下内容:

https://www.example-shared-image-server.com

因此,当从上述共享图像 URL 访问图像时,它实际上会显示https://www.one.com,因此会出现错误。

因此,它似乎与 IE 在 Windows XP 或 Vista 上不支持 SNI 或 SSL/TLS 有关,而它在 Win 7 和 Win 8 上。这似乎是 M$ 迫使人们升级到最新操作的直接策略系统。但事实是所有其他浏览器都支持它。

但是,我无法确定的是我能做些什么。所以我相信我的问题是,是否可以在不同域的同一服务器上使用 SSL 托管多个网站而不会导致 IE 显示错误。如果不是,其他人会怎么做?是的,我该如何配置它?

我已经为此工作了几个小时,所以如果有人可以提供帮助,我将不胜感激。

非常感谢,

4

1 回答 1

8

Windows XP 的 SChannel 版本不支持 SNI,这意味着 IE 和其他基于 WinINET/WinHTTP 的应用程序在该平台上不支持 SNI。

http://blogs.msdn.com/b/ieinternals/archive/2009/12/07/certificate-name-mismatch-warnings-and-server-name-indication.aspx

Windows Vista 中引入了 SNI 支持;如果您没有看到它在该平台上运行,则很可能 IE 已从默认值重新配置为启用 SSL2。与 SSLv2 兼容的握手不携带 TLS 扩展,如 SNI 扩展。

这里唯一真正的解决方法是:

  1. 将每个服务器托管在不同的 IP 或端口上(以便服务器可以根据该信息选择证书)
  2. 使用证书的 SubjectAltName 字段使用包含多个主机名的证书
于 2013-08-28T18:22:08.717 回答