我们的客户之一尝试访问我们的应用程序时收到此错误。 错误消息是:
“你试图访问xxx.foo.com ,但实际上你到达的服务器名称是yyy.bar.com ,这可能是由于服务器上的configuration错误或更严重的原因引起的。
在我们的应用程序中唯一的要求是yyy.bar.com是一个JavaScript文件在我们的头(格式: https://yyy.bar.com/script.js : yyy.bar.com )。
我无法在本地复制此问题,也没有其他用户报告此问题。 我确信这是客户端机器上的一个设置,但是在Chrome的内容设置/证书pipe理页面中,我无法弄清楚可能是什么原因导致只发生在一个特定的客户端上。
(请注意,客户端的所有机器都受到影响,可能是一些防病毒configuration,或者路由器有问题?)
使用基于PORT或IP的虚拟主机。 基于HOSTNAME的虚拟主机与在两台主机上使用SSL不兼容。
他们在Windows XP上运行Chrome,在XP上运行时不支持SSL SNI,因为它使用MSencryption库。 (更新:Windows XP上的Chrome版本6.0和更新版本支持SNI)在这种情况下(或者在XP上也可以使用IE )重现。 有关SNI浏览器支持的更完整列表,请参阅此Wikipedia部分。
对于正在工作的客户,他们正在访问https://xxx.foo.com的资源,并且由于他们支持SNI,他们正在获取由Web服务器提供的xxx.foo.com证书。
对于这个Windows XP客户端,它从https://xxx.foo.com请求资源并获取该SSL端口的默authentication书; yyy.foo.com证书,对于这个名字是无效的。
什么是您的Web服务器,以及它的SSL监听器如何configuration?