EV SSL上具有3个域的重定向错误

时间:2019-06-02 15:10:55

标签: apache ssl cpanel http2

错误

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多域证书付费。是否可以购买2个其他IP并确保每个域都有自己的IP?还是有一种方法可以编辑虚拟主机,以便保持现在的设置?

我应该提到,这仅在Safari上发生,而不是在chrome上发生。

SSL实验室报告

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

轻松的Apache HTTP vhost配置

https://pastebin.com/dNeFRGWJ

轻松的Apache HTTPS虚拟主机配置

https://pastebin.com/vgWAD5mg

1 个答案:

答案 0 :(得分:0)

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

如果IP地址都匹配并且证书覆盖了所有必要的域,则

HTTP / 2将尝试为多个域重用连接。在这种情况下,因此HTTP / 2被重用。

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

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设置中进一步向下:

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服务器应为所有请求返回421 Misdirected Request status code,例如:“是的,您实际上不应该在这里重用连接!您可以尝试吗?再次连接另一个吗?”。如果存在不同的SSL / TLS设置(例如,在另一个域上不接受用于连接的密码套件),也会发生同样的事情。

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

  

重定向请求

     

客户端需要此请求的新连接   主机名与用于以下目的的服务器名指示(SNI)不匹配   这种联系。

我认为没有理由不在所有域上都启用HTTP / 2,这是配置错误吗?如果是这样,请在所有域中启用HTTP / 2,并且应该对您的问题进行排序。

如果您不希望在所有域上都使用HTTP / 2,则请确保浏览器不认为它可以重用连接。这意味着要么为该域使用单独的IP地址,要么仅为两个域重新颁发证书,为另一个域(而不应该共享连接)获得单独的证书。