首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EV SSL上3个域的误导性重定向

EV SSL上3个域的误导性重定向
EN

Stack Overflow用户
提问于 2019-06-02 15:10:55
回答 1查看 860关注 0票数 0

误差

代码语言:javascript
复制
The client needs a new connection for this request as the requested host name does not match the Server Name Indication (SNI) in use for this connection.

我最近从Comodo购买了一个EV SSL证书,并将它安装在我的VPS (cPanel/WHM)上,一切都很好。然后我升级到http2,现在在证书上的每个网站之间切换时都会收到错误。这三个网站共享相同的IP地址。据我所知,这可能就是问题所在。我不想为每个域重新颁发SSL证书,因为我为EV多域证书支付了费用。是否可以购买两个额外的IP,并确保每个域名都有自己的IP?或者有什么方法可以编辑虚拟主机,这样我就可以维护我现在的设置了吗?

我要说的是,这只发生在Safari,而不是chrome上。

SSL实验室报告

https://www.ssllabs.com/ssltest/analyze.html?d=www.deschutesdesigngroup.com&s=142.4.0.142&hideResults=on

EasyApache HTTP配置

https://pastebin.com/dNeFRGWJ

EasyApache HTTPS vhost配置

https://pastebin.com/vgWAD5mg

EN

回答 1

Stack Overflow用户

发布于 2019-06-02 21:43:46

您只在这三个站点中的两个上启用了HTTP/2。

如果IP地址和证书都包含所有必需的域,则HTTP/2将尝试将连接重用到多个域。这里就是这种情况,因此可以重用HTTP/2。

但是,如果您在所有三个域上运行SSLLabs,您会发现用于Chrome的协议略有不同(例如):

代码语言:javascript
复制
Chrome 70 / Win 10  RSA 2048 (SHA256)   TLS 1.2 > h2  
Chrome 70 / Win 10  RSA 2048 (SHA256)   TLS 1.2 > http/1.1  
Chrome 70 / Win 10  RSA 2048 (SHA256)   TLS 1.2 > h2  

类似地,在ALPN设置中也是这样:

代码语言:javascript
复制
ALPN    Yes   h2 http/1.1
ALPN    Yes   http/1.1
ALPN    Yes   h2 http/1.1

因此,首先进入中间域将工作,因为它将通过HTTP/1.1进行连接,因此不会重用连接。但是,在向第一个或最后一个域发起请求之后,进入中间域将尝试重用HTTP/2连接,并失败,因为中间域不支持HTTP/2。

当浏览器试图重用连接时,Web服务器应该为任何请求返回一个 status code,这样说:“是的,您真的不应该试图在这里重用连接!您可以在另一个连接上再试一次吗?”如果存在不同的SSL/TLS设置(例如,用于连接的密码套件在另一个域中不被接受),则会发生相同的情况。

Chrome和Firefox正确地处理421响应,并通过新连接透明地重新发送请求,在本例中,新连接使用HTTP/1.1 (查看浏览器中的开发人员工具,您将看到这是正确的)。其他浏览器,包括iOS使用的Safari,尚未实现对相对新的421状态代码的支持,因此失败,错误如下:

误导请求 客户端需要此请求的新连接,因为请求的主机名与用于此连接的服务器名称指示(SNI)不匹配。

我认为没有理由不对所有域启用HTTP/2,这是一个错误配置错误吗?如果是这样的话,那么在所有域中启用HTTP/2,您的问题就应该得到排序。

如果您不想在所有域上使用HTTP/2,那么您可以确保浏览器不认为它可以重用连接。这意味着要么为该域使用单独的IP地址,要么只为两个域重新颁发证书,为不应该共享连接的其他域使用单独的证书。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56416281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档