SSL 인증서 서버 이름 확인 디코딩
SSL 인증서 확인을 이해하는 것은 보안 통신을 설정하는 데 중요합니다. 귀하의 질문을 탐색하고 포괄적인 답변을 제공해 드리겠습니다.
SSL 인증서에 대한 서버 이름 확인
RFC 2818 및 RFC 6125는 SSL 인증서에 대한 호스트 이름 확인을 정의합니다. "dNSName" SAN(주체 대체 이름)이 없으면 CN(일반 이름) 필드가 사용됩니다. 그러나 CN 사용은 더 이상 사용되지 않으며 SAN이 선호됩니다.
브라우저 동작과 Java의 메커니즘
브라우저는 종종 CN 기반 서버 이름을 다르게 처리하여 다음과 같은 경우에도 연결을 허용합니다. CN이 도메인과 일치하지 않습니다. 반면 Java는 RFC를 엄격하게 준수하여 SAN 또는 일치하는 CN만 허용합니다.
Keytool을 사용하여 대체 이름 추가
Java의 keytool에는 이제 "- ext" 옵션을 사용하여 인증서에 SAN을 추가할 수 있습니다. 원하는 대체 이름을 포함하려면 "-ext san=dns:www.example.com" 또는 "-ext san=ip:10.0.0.1"을 사용하세요.
대안으로 OpenSSL
keytool을 사용하지 않으려면 OpenSSL을 사용하면 됩니다. openssl.cnf를 수정하거나 "OPENSSL_CONF" 환경 변수를 설정하면 인증서에서 SAN을 요청하도록 OpenSSL을 구성할 수 있습니다.
OpenSSL 구성 예시
openssl에서. cnf에서 "[req]" 및 "[v3_req]" 아래에 다음을 추가합니다. 섹션:
[req] req_extensions = v3_req [ v3_req ] subjectAltName=IP:10.0.0.1 # or subjectAltName=DNS:www.example.com
대체 환경 변수 트릭
또는 환경 변수를 설정하여 SAN을 지정할 수 있습니다. 자세한 내용은 http://www.crsr.net/Notes/SSL.html을 참조하세요.
위 내용은 SSL 인증서 서버 이름 확인은 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!