Win7 上 IE9 和具有多个虚拟主机的 Nginx 出现无效证书错误

Win7 上 IE9 和具有多个虚拟主机的 Nginx 出现无效证书错误

我们有一个 Nginx 实例,它在同一个 IP 地址上有多个虚拟主机。 nginx.conf其配置类似于以下内容:

server {
  listen      443 default_server ssl;
  server_name www.primary.com;
  ...
}

server {
  listen      80;
  server_name .primary.com;

  rewrite     ^(.*)   https://www.primary.com$1 permanent;
}

server {
  listen      443 ssl;
  server_name www.secondary.com;
  ...
}

server {
  listen      80;
  server_name .secondary.com;

  rewrite     ^(.*)   https://www.secondary.com$1 permanent;
}

server {
  listen      443 ssl;
  server_name www.tertiary.com;
  ...
}

server {
  listen      80;
  server_name .tertiary.com;

  rewrite     ^(.*)   https://www.tertiary.com$1 permanent;
}
...

每个域名都有自己的 SSL 证书。所有证书在 SSLLabs.com 上的评级均为 A+。但是,它们均显示与不支持 SNI 的浏览器不兼容(例如,WinXP 上的 IE8)。

用户通常能够正常访问http(s)://www.primary.com、、http(s)://www.secondary.comhttp(s)://www.tertiary.com。然而,部分 Windows 7 64 位 IE9 用户抱怨称,当他们尝试访问https://www.secondary.com或时收到安全警告(证书无效) https://www.tertiary.com。如果他们忽略安全警告继续,URL 则可以正常打开。然后,从浏览器地址栏检查证书时,会显示 的证书而www.primary.com不是所请求域的证书。同一用户在同一台​​计算机上使用其他任何浏览器(如 Firefox、Chrome 或 Opera)时都没有遇到任何问题。其他用户均未报告任何错误(IE10、IE11、Safari、Windows 8、Mac OS 等)。另请注意,并非所有 IE9 用户都会遇到此问题。我们发现同一网络中的 IE9 用户可以完美访问网站。

由于用户处于企业环境中,而 IT 政策鼓励使用默认浏览器 (IE9),因此部分受影响的用户认真对待警告并拒绝继续使用受影响的网站。我们尝试了清除浏览器缓存等常规选项。

关于如何找到并修复根本原因,您有什么想法或建议吗?我们希望找到一种可以在服务器端实施且不需要用户干预的解决方案(除非有记录显示 Windows 7 上的 IE9 存在问题)。

相关内容