2.4. HTTPS 인증서에 대한 특수 요구 사항
2.4.1. 개요
HTTPS 사양에서는 HTTPS 클라이언트가 서버의 ID를 확인할 수 있어야 합니다. 이는 X.509 인증서를 생성하는 방법에 잠재적으로 영향을 미칠 수 있습니다. 서버 ID를 확인하는 메커니즘은 클라이언트 유형에 따라 다릅니다. 일부 클라이언트는 신뢰할 수 있는 특정 CA에서 서명한 서버 인증서만 수락하여 서버 ID를 확인할 수 있습니다. 또한 클라이언트는 서버 인증서의 콘텐츠를 검사하고 특정 제약 조건을 충족하는 인증서만 허용할 수 있습니다.
애플리케이션별 메커니즘이 없는 경우 HTTPS 사양은 서버 ID를 확인하기 위해 HTTPS URL 무결성 검사 라는 일반 메커니즘을 정의합니다. 이는 웹 브라우저에서 사용하는 표준 메커니즘입니다.
2.4.2. HTTPS URL 무결성 검사
URL 무결성 검사의 기본 개념은 서버 인증서의 ID가 서버 호스트 이름과 일치해야 한다는 것입니다. 이 무결성 검사는 HTTPS에 대한 X.509 인증서를 생성하는 방법에 중요한 영향을 미칩니다. 인증서 ID(일반적으로 인증서 제목 DN의 일반 이름)는 HTTPS 서버가 배포된 호스트 이름과 일치해야 합니다.
URL 무결성 검사는 중간자 공격을 방지하기 위해 설계되었습니다.
2.4.3. reference
HTTPS URL 무결성 검사는 http://www.ietf.org/rfc/rfc2818.txt 의 IETF(Internet Engineering Task Force)에서 게시한 RFC 2818에 의해 지정됩니다.
2.4.4. 인증서 ID를 지정하는 방법
URL 무결성 검사에 사용되는 인증서 ID는 다음 방법 중 하나로 지정할 수 있습니다.
2.4.5. commonName 사용
URL 무결성 검사를 위해 인증서 ID를 지정하는 일반적인 방법은 인증서의 제목 DN에서 CN(일반 이름)을 사용하는 것입니다.
예를 들어 서버가 다음 URL에서 보안 TLS 연결을 지원하는 경우 다음을 수행합니다.
https://www.redhat.com/secure
해당 서버 인증서에는 다음과 같은 제목 DN이 있습니다.
C=IE,ST=Co. Dublin,L=Dublin,O=RedHat, OU=System,CN=www.redhat.com
여기서 CN이 호스트 이름인 www.redhat.com
로 설정되어 있습니다.
새 인증서에서 제목 DN을 설정하는 방법에 대한 자세한 내용은 2.5절. “자체 인증서 생성” 을 참조하십시오.
2.4.6. subjectAltName 사용(multi-homed 호스트)
인증서 ID에 제목 DN의 일반 이름을 사용하면 한 번에 하나의 호스트 이름만 지정할 수 있는 단점이 있습니다. 그러나 다중 홈 호스트에 인증서를 배포하는 경우 다중 홈 호스트 이름과 함께 인증서를 사용하도록 허용하는 것이 좋습니다. 이 경우 여러 대체 ID가 있는 인증서를 정의해야 하며 subjectAltName
인증서 확장만 사용할 수 있습니다.
예를 들어 다음 호스트 이름 중 하나에 대한 연결을 지원하는 다중 홈 호스트가 있는 경우 다음을 수행합니다.
www.redhat.com www.jboss.org
그런 다음 이러한 DNS 호스트 이름을 모두 명시적으로 나열하는 subjectAltName
을 정의할 수 있습니다. openssl
유틸리티를 사용하여 인증서를 생성하는 경우 openssl.cnf
구성 파일의 관련 행을 편집하여 다음과 같이 subjectAltName
확장 값을 지정합니다.
subjectAltName=DNS:www.redhat.com,DNS:www.jboss.org
여기서 HTTPS 프로토콜은 subjectAltName
에 나열된 DNS 호스트 이름 중 하나와 서버 호스트 이름과 일치합니다( subjectAltName
이 일반 이름보다 우선함).
HTTPS 프로토콜은 호스트 이름에 와일드카드 문자 \*
도 지원합니다. 예를 들어 다음과 같이 subjectAltName
을 정의할 수 있습니다.
subjectAltName=DNS:*.jboss.org
이 인증서 ID는 도메인 jboss.org 의 세 가지 구성 요소 호스트 이름과 일치합니다.
도메인 이름 앞에 와일드카드 문자를 절대 사용하지 않아야 합니다. 도메인 이름 앞에 있는 점 . .
구분 기호를 입력하는 것을 잊어버려서 실수로 이 작업을 수행하지 않아야 합니다. 예를 들어 *jboss.org
를 지정한 경우 인증서가 *임표 jboss
로 끝나는 *임의* 도메인에서 사용할 수 있습니다.