HTTP 2 下使用相同證書子域名 SSL配置不一致致使 421 錯誤

這個狀況真的很罕見,網上資料不多,這邊記錄一下,方便之後遇到的人解決。瀏覽器

狀況是這樣的:
有以下子域名: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

相關文章
相關標籤/搜索