SSL 인증서 서버 이름 확인 이해
보안 웹 통신 영역에서 SSL 인증서는 서버의 신원을 확인하는 데 중요한 역할을 합니다. . 서버 이름 확인 프로세스는 SSL 인증서에 지정된 이름을 사용하여 HTTPS 연결에서 신뢰를 구축하는 방법을 결정합니다.
SSL 인증서 서버 이름은 어떻게 확인됩니까?
RFC 2818 및 그 후속인 RFC 6125는 서버 이름 확인에 대한 지침을 정의합니다. 이러한 표준에서는 다음을 지정합니다.
Java의 SSL 인증서 확인 메커니즘
Java의 SSL 메커니즘은 subjectAltName 확장 우선 순위를 따릅니다. 인증서에 이 확장자가 포함되어 있으면 Java는 지정된 도메인 이름이나 IP 주소를 확인을 위한 ID로 사용합니다. 그렇지 않으면 CN 필드 사용으로 되돌아갑니다. 이 동작은 RFC 2818에 설명된 권장 모범 사례를 따릅니다.
Keytool을 사용한 대체 이름 포함
예, SSL에 대체 이름을 추가할 수 있습니다. keytool을 사용한 인증서. Java 7부터 keytool에는 인증서에 SAN(주체 대체 이름)을 포함할 수 있는 "-ext" 옵션이 도입되었습니다. 요구 사항에 따라 SAN을 "dns:www.example.com" 또는 "ip:10.0.0.1"로 지정할 수 있습니다.
대안으로 OpenSSL
keytool을 사용하는 것이 불편하다면 OpenSSL은 SAN을 통해 SSL 인증서를 생성하는 데 탁월한 옵션입니다. openssl.cnf 구성 파일을 수정하면 "[req]" 및 "[ v3_req ]" 섹션을 사용하여 subjectAltName 확장자를 지정할 수 있습니다. 또한 OPENSSL_CONF 환경 변수를 사용하여 구성 파일의 명시적인 위치를 제공할 수 있습니다.
문제를 해결하려면 인증서에 올바른 서버 이름이 포함되어 있는지 확인해야 합니다. CN 필드에 IP 주소만 포함된 경우 브라우저는 이를 허용할 수 있지만 SAN이 없기 때문에 Java는 이를 신뢰하지 않습니다. keytool 또는 OpenSSL을 사용하여 인증서에 SAN을 추가하면 브라우저와 Java 모두 서버 이름을 올바르게 인식하도록 할 수 있습니다.
위 내용은 Java는 SSL 인증서의 서버 이름을 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!