>Java >java지도 시간 >Java에서 'java.security.cert.CertificateException: No Subject Alternative Names Present' 오류를 수정하는 방법은 무엇입니까?

Java에서 'java.security.cert.CertificateException: No Subject Alternative Names Present' 오류를 수정하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-08 02:18:02985검색

How to Fix the

Java에서 "java.security.cert.CertificateException: No Subject Alternative Names Present" 오류 문제 해결

HTTPS 웹 서비스에 연결할 때 Java 클라이언트를 사용할 때 "java.security.cert.CertificateException: 주체 대체 이름이 없습니다."라는 예외가 발생하면 실망스러울 수 있습니다. 이 문제를 해결하는 방법은 다음과 같습니다.

인증서 정보 확인

서버의 인증서 세부정보를 얻으려면 "openssl s_client -showcerts -connect AAA.BBB.CCC" 명령을 사용하세요. .DDD:9443 > 결과 파일 "certs.txt"에는 다음이 포함됩니다.

  • 인증서 체인: "CN=AAA.BBB.CCC.DDD"가 포함된 인증서를 식별합니다.
  • 서버 인증서: 이 인증서에 대해 "-----BEGIN CERTIFICATE-----"와 "-----END CERTIFICATE-----" 사이의 섹션을 추출합니다.

대체 솔루션

제안된 솔루션의 1단계 관련:

  • 인증서만 추출하는 것은 올바르지 않습니다. 추가 수정이 필요합니다.
  • IP 주소(AAA.BBB.CCC.DDD)와 일치하는 인증서를 만드는 것이 목표입니다.

2단계에 대해 제안된 솔루션:

  • AAA.BBB.CCC.DDD를 포함하도록 인증서를 수정하려면 특정 도구와 전문 지식이 필요하므로 이 단계는 실용적이지 않습니다.

권장 접근 방식

다음 대안을 고려하십시오.

  • HTTPS 검사 비활성화:
// In the ISomeService class:
static {
    disableSslVerification();
}

private static void disableSslVerification() {
    // ... [Code to disable HTTPS checks as described in the provided answer]
}
  • 사용자 정의 호스트 이름 확인 도구 구현:
// In the ISomeService class:
HostnameVerifier customVerifier = new HostnameVerifier() {
    @Override
    public boolean verify(String hostname, SSLSession session) {
        // Perform custom hostname verification, such as accepting the IP address (AAA.BBB.CCC.DDD).
        return true;
    }
};

HttpsURLConnection httpsConn = (HttpsURLConnection) url.openConnection();
httpsConn.setHostnameVerifier(customVerifier);

주의: HTTPS 검사를 비활성화하거나 사용자 정의 호스트 이름 확인 도구를 구현하면 보안이 손상될 수 있습니다. 테스트 또는 통제된 환경에서만 이러한 접근 방식을 사용하십시오.

위 내용은 Java에서 'java.security.cert.CertificateException: No Subject Alternative Names Present' 오류를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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