시작할 때 HTTPS를 제공하려면 시작부터 클라이언트가 승인 한 인증서를 제공해야합니다. 그렇지 않으면 클라이언트가 SSL 연결을 수락하지 않으므로 클라이언트를 다른 사이트 나 HTTP 전용 버전으로 리디렉션 할 수 없습니다. 이는이 경우를 지원한다는 의미입니다.
- SNI 이외의 클라이언트에게 적절한 인증서를 제공 할 수 있도록 모든 도메인을 포함하는 단일 인증서가 있어야합니다. 그러나이 경우 SNI가 전혀 필요하지 않습니다.
- 또는 대부분의 이름과 일치하지 않는 기본 인증서를 설치해야합니다. 이 경우 클라이언트가이 잘못된 인증서를 수락 한 경우에만 클라이언트에게 다른 페이지를 제공하거나 리디렉션 할 수 있습니다.
시작할 때 HTTPS를 가질 필요가없는 경우, 즉 클라이언트가 보통 일반 HTTP와 먼저 연결하는 경우 나중에 클라이언트를 리디렉션 할 수 있도록 SNI 지원을 감지하려고 시도 할 수 있습니다. HTTPS 사이트에서 이미지, 일부 JavaScript 또는 유사한 항목을 포함하여 수행 할 수 있으며로드가 성공하면 클라이언트가 SNI를 지원하거나 인증서 오류를 무시한다는 것을 알 수 있습니다.
물론 모든 사람이 중간자 공격에 노출 될 수 있습니다. 왜냐하면 모든 사람이해야 할 일은 다른 인증서를 제공하거나 HTTPS를 전혀 사용할 수 없도록하기 때문입니다. HTTPS 로의 연결을 업그레이드합니다. 또한 man-in-the-middle이 대신하는 경우 클라이언트가 SNI를 지원하는 것처럼 보이게하는 데 사용할 수 있습니다. 그리고 SNI가 아닌 클라이언트가 이것의 영향을받을뿐만 아니라 SNI 가능 클라이언트 만 가로 챌 수 있습니다. 따라서 이론 상으로는 이것이 가능하지만 중간에 사람을 배치하여 HTTPS를 사용하는 주요 지점을 만들 수 있기 때문에 권장하지 않습니다.