421 Misdirected Request 해결
홈페이지에 TLS 암호화를 적용했을 때, 와일드카드 인증서를 여러 페이지에 적용하는 경우 간간히 421 Misdirected Request 에러가 일어났다.
1 2 |
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가 속도를 위해 커넥션을 재사용하기 때문에 일어난다. 내가 하나의 컴퓨터에서 가상 호스트로 site1.enyou.kr과 site2.enyou.kr의 사이트를 운영하고, 둘 다 동일한 인증서를 사용한다고 하자.
하지만 두 가상 호스트는 동일한 인증서를 이용하지만, TLS 설정에는 차이가 있을 수 있다. (암호화 수준이나, 확인 방법, 프로토콜 등에 미묘한 차이가 있을 수 있다.) HTTP2는 최대한 커넥션을 재사용하려고 하는데, 동시에 여러 요청이 두 사이트에서 이루어진다고 하자. 그렇다면 브라우저는 최대한 커넥션을 재사용하려고 하나(동일한 사이트로 생각한다.), 웹서버 측에서는 두 사이트의 TLS 설정이 다르므로, 요청을 거부하고, 421 Misdirected Request 오류를 표시한다
해결 방법은 같은 와일드카드 인증서를 사용하는 사이트의 TLS 설정 부분을 모두 동일하게 설정하는 것이다. 또는 불가한 경우에는 그 도메인에 대한 인증서만 새로 발급 받고, 해당 사이트만 그 인증서를 적용 시켜주면 된다.
421 Misdirected Request
Multiple Hosts and Misdirected Requests
HTTP/2 소개