SSL 인증서 서버 이름 확인
SSL 인증서에서 서버 이름은 주로 SAN(주체 대체 이름) 필드를 기반으로 확인됩니다. 대부분의 경우 브라우저는 SAN을 사용하여 연결 중인 웹 사이트의 신원을 확인합니다. 그러나 Java 기반 애플리케이션은 서버 이름 확인을 위해 SAN에만 의존하여 다른 동작을 하는 것으로 보입니다.
왜 구별해야 합니까?
RFC 2818은 브라우저가 다음을 수행할 수 있다고 정의했습니다. 서버 이름 확인을 위해 CN(일반 이름) 또는 SAN 필드를 사용하십시오. RFC 6125는 나중에 CN 사용을 더 이상 사용하지 않고 SAN만 사용할 것을 권장했습니다. Java 애플리케이션은 일반적으로 RFC 6125를 준수하지만 일부 브라우저는 호환성 이유로 여전히 CN을 허용할 수 있습니다.
Keytool을 사용하여 대체 이름 추가
Keytool을 사용하면 SSL에 SAN을 추가할 수 있습니다. "-ext" 옵션을 사용하는 인증서. 다음 명령을 사용하여 대체 이름을 추가할 수 있습니다.
-ext san=dns:www.example.com -ext san=ip:10.0.0.1
대신 OpenSSL을 사용할 수 있습니까?
예, OpenSSL을 사용하여 SSL 인증서를 생성할 수도 있습니다. SAN. 이렇게 하려면 "openssl.cnf" 구성 파일을 다음과 같이 수정하세요.
[req] req_extensions = v3_req [ v3_req ] subjectAltName=IP:10.0.0.1 # or subjectAltName=DNS:www.example.com
또는 환경 변수 OPENSSL_CONF를 수정된 "openssl.cnf" 파일의 위치로 설정하세요.
위 내용은 SSL 서버 이름 확인에서 Java 애플리케이션과 브라우저는 어떻게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!