这个状况真的很罕见,网上资料不多,这边记录一下,方便之后遇到的人解决。浏览器
状况是这样的:
有以下子域名:abc.test.gov、def.test.gov,两个域名都启用了HTTP2,使用同一个通配符证书*.test.gov,绑定在同一个服务器上。服务器
abc.test.gov有一个连接指向def.test.gov,用户点击进去以后浏览器报错:(iOS Safari、Android Webview会,Chrome Mac版正常)ui
HTTP/2 421 Misdirected Request 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.
缘由查证以下:
因为启用HTTP2,浏览器默认在同证书、同IP的状况下会采起链接复用。但两边个VirtualHost的SSL配置不一样,def.test.gov(配置了双向认证 SSLVerify require),会致使服务器拒绝浏览器的多路复用请求,报421。this
这种状况在HTTP1.1下不存在code