우선 SNI 지원이없는 모든 클라이언트에 사용할 하나의 인증서를 지정할 수 있어야합니다. 이는 해당 IP 주소에서 호스팅되는 모든 도메인을 의미하며 SNI없이 클라이언트에서 작동하는 도메인 중 하나 이상을 가질 수 있습니다.
http에서 https로 리디렉션 할 때 수행 할 수있는 작업은 2 단계 리디렉션입니다. http에서 https 로의 첫 번째 경로 재 지정은 SNI 지원과 함께 또는 SNI 지원없이 작동하는 도메인 이름을 사용합니다. 이 https 사이트에서 나중에 적절한 URL로 리디렉션 할 수 있도록 전체 원본 URL을 포함해야합니다.
SNI의 유무에 관계없이 작동하는 도메인 이름은 클라이언트가 SNI를 지원하는지 여부에 따라 다르게 작동 할 수 있습니다. 이렇게하면 SNI가 필요한 도메인으로 리디렉션하기 전에 클라이언트가 SNI를 지원했음을 알 수 있습니다.
아파치에서 이것을 정확하게 구성하는 방법은 내 측에서 약간 추측 할 것입니다 (하나 이상의 인증서로 아파치를 구성하지 않았기 때문에). 중간 도메인을 포함한 모든 도메인에 대한 이름 기반 가상 호스트를 만드는 것이 방법이라고 생각합니다.
그런 다음 이름을 사용하는 것과 동일한 인증서를 사용하는 SNI가없는 클라이언트에 대한 기본 가상 호스트를 작성하십시오. 인증서가 동일한 두 개의 가상 호스트는 SNI 지원 여부에 따라 클라이언트에 다른 리디렉션을 보냅니다.
마지막으로 서버에서 IPv6을 활성화합니다. IPv6을 사용하면 각 가상 호스트에 하나씩 IP 주소를 할당 할 수있는 충분한 IP 주소가 제공됩니다. 동일한 가상 호스트 집합은 IPv4 기반의 이름과 IPv6 기반의 IP 일 수 있으므로이 방법으로 구성을 복제 할 필요가 없습니다.
최종 결과는 클라이언트가 SNI 또는 IPv6을 지원하는 한 작동하는 설정입니다. 어느 쪽도 지원하지 않는 클라이언트 만 문제가 발생하지만 여전히 다른 리디렉션이나 오류 메시지를 감지하고 서버를 감지 할 수 있습니다.
CA가 마음에 들지 않는 클라이언트의 경우 사용자 에이전트가 클라이언트를 인식하고 적절하게 처리하는 것이 좋습니다. https 사이트로 연결되는 링크가 있는지 확인하십시오. 실수로 너무 많은 클라이언트가 포함 된 경우 클릭 할 수 있습니다.