SSL 인증서 서버 이름 확인
SSL 인증서는 보안 연결을 설정하는 데 중요한 역할을 하지만 서버 이름이 확인되는 방식을 이해하는 것이 필수적입니다.
SSL 인증서 서버 이름은 어떻게 되나요? 해결됨
RFC 6125에 따르면 SSL 인증서의 호스트 이름을 확인하는 프로세스에는 다음 필드를 확인하는 작업이 포함됩니다.
-
주체 대체 이름(SAN): 있는 경우 SAN 필드가 우선하며 유효한 서버를 포함합니다. names.
-
일반 이름(CN): SAN 필드를 사용할 수 없으면 CN 필드가 사용됩니다. 그러나 이 방법은 더 이상 사용되지 않습니다.
Java의 호스트 이름 확인
Java에서 SSL 인증서에 대한 호스트 이름 확인은 일반적으로 RFC 2818에 설명된 지침을 따릅니다. 즉:
- 인증서에 SAN 필드가 포함되어 있으면 Java가 확인합니다. 지정된 값에 대해 호스트 이름을 비교합니다.
- SAN 필드가 없으면 Java는 CN 필드에서 유효한 호스트 이름을 확인합니다.
Keytool을 사용하여 대체 이름 추가
- Java 7 이상에서는 keytool이 Subject Alternative를 지정하는 옵션을 제공합니다. SSL 인증서 생성 시 이름(SAN). san=dns:와 함께 -ext 매개변수 사용 또는 san=ip: 인증서에 원하는 대체 이름이 포함됩니다.
대안으로서의 OpenSSL
- keytool이 요구 사항을 충족하지 못하는 경우 OpenSSL을 사용할 수 있습니다. SAN을 사용하여 자체 서명된 인증서를 생성합니다. openssl.cnf 구성 파일을 수정하거나 환경 변수를 설정하면 인증서에 포함할 대체 이름을 지정할 수 있습니다.
호스트 이름 확인 오류 문제 해결
Java가 신뢰 저장소에 추가되었음에도 불구하고 SSL 인증서를 신뢰하지 않는 경우 다음 단계를 수행할 수 있습니다. 도움말:
- 인증서의 SAN 필드 또는 CN 필드가 연결하려는 서버의 호스트 이름과 일치하는지 확인하세요.
- 인증 기관(CA)이 발급된 인증서는 Java에서 신뢰됩니다.
- Java의 기본 호스트 이름 확인을 재정의하려면 사용자 정의 HostnameVerifier를 사용하는 것이 좋습니다. 행동.
위 내용은 Java는 SSL 인증서 서버 이름을 어떻게 확인하고 문제 해결 단계는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!