>Java >java지도 시간 >Java는 SSL 인증서 서버 이름을 어떻게 확인하고 문제 해결 단계는 무엇입니까?

Java는 SSL 인증서 서버 이름을 어떻게 확인하고 문제 해결 단계는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-11 07:39:10556검색

How Does Java Verify SSL Certificate Server Names and What Are the Troubleshooting Steps?

SSL 인증서 서버 이름 확인

SSL 인증서는 보안 연결을 설정하는 데 중요한 역할을 하지만 서버 이름이 확인되는 방식을 이해하는 것이 필수적입니다.

SSL 인증서 서버 이름은 어떻게 되나요? 해결됨

RFC 6125에 따르면 SSL 인증서의 호스트 이름을 확인하는 프로세스에는 다음 필드를 확인하는 작업이 포함됩니다.

  1. 주체 대체 이름(SAN): 있는 경우 SAN 필드가 우선하며 유효한 서버를 포함합니다. names.
  2. 일반 이름(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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.