SNI(Server Name Indication)
IBM® HTTP Server에 대한 SNI(Server Name Indication) 지원으로 TLS 클라이언트에서 전송한 SNI 확장을 기반으로 인증서 선택을 사용할 수 있습니다. 이름 기반 가상 호스트에서 다른 핸드쉐이크 관련 설정을 사용할 수 있습니다.
SNI에 대한 정의
- 주소별로 일치하는 각 가상 호스트(예: "*:443")는 이름 기반 호스트 그룹을 구성합니다.
- 이름 기반 가상 호스트 그룹에서 첫 번째 나열되는 가상 호스트는 기본 가상 호스트입니다.
SNI 요구사항
- 기본 가상은 SSLServerCert 지시문에 SNI 인수를 지정해야 합니다.
- 단일 주소별(예: "*:443") 가상 호스트만 SNI에 참여할 수 있습니다.
- 이름 기반 가상 호스트의 기본이 아닌 가상 호스트는 SSLServerCert 이외의 이 모듈에서 지시문을 포함할 수 없습니다.
- "invalid"는 예약된 서버 이름입니다. 가상 호스트는 "ServerName invalid"를 지정하지 않아야 합니다.
SNI 양식
다음과 같이 SNI의 두 가지 양식이 있습니다.
- SNI의 첫 번째 양식에서 하나의 가상 호스트만 사용되고
SSLSNIMap 지시문은 호스트 이름 및 인증서 레이블을 맵핑하는 데
사용됩니다.
<virtualhost *:443> ServerName example.com SSLEnable SNI SSLServerCert default SSLSNIMap a.example.com sni1-rsa SSLSNIMap a.example.com sni1-ecc SSLSNIMap b.example.com sni2 </virtualhost>
- SNI의 두 번째 양식에서 일련의 가상 호스트가 작성되고
호스트 이름에서 인증서 레이블로 ServerName,
non-wildcard ServerAlias 및 SSLServerCert를 통해 맵핑합니다.
<virtualhost *:443> ServerName example.com SSLEnable SNI </virtualhost> <virtualhost *:443> ServerName a.example.com SSLEnable SSLServerCert sni1 </virtualhost> <virtualhost *:443> ServerName b.example.com ServerAlias other.example.com SSLEnable SSLServerCert sni2 </virtualhost>