웹 서비스에 연결할 때 "java.security.cert.CertificateException: No Subject Alternative Names Present" 오류를 해결하는 방법
Java 클라이언트를 사용하여 HTTPS를 통해 "java.security.cert.CertificateException: 주체 대체 이름이 없습니다."라는 오류가 발생할 수 있습니다. 이 문제는 웹 서비스에 액세스하는 데 사용되는 호스트 이름 또는 IP 주소와 일치하는 필수 SAN(주체 대체 이름) 필드가 서버 인증서에 없을 때 발생합니다.
이 문제를 해결하려면 다음 단계를 따르세요.
1. Certs.txt에서 인증서 추출
------BEGIN CERTIFICATE-----와 -----END CERTIFICATE---- 사이의 certs.txt 파일 부분을 추출합니다. -. 서버인증서입니다.
2. 인증서 이름 수정(선택 사항)
인증서 이름을 IP 주소 AAA.BBB.CCC.DDD와 동일하게 수정해야 한다고 말씀하셨습니다. 그러나 귀하가 제공한 문서에 따르면 이는 필요하지 않을 수도 있습니다. 서버를 제어할 수 있는 경우 인증서에 AAA.BBB.CCC.DDD와 일치하는 SAN 필드가 포함되어 있는지 확인해야 합니다. 그렇지 않으면 호스트 이름을 SAN 필드로 사용하여 문제가 해결되는지 확인할 수 있습니다.
3. 수정된 인증서 가져오기(선택 사항)
인증서를 수정한 경우 keytool -importcert -file fileWithModifiedCertificate를 사용하여 가져와야 합니다.
4. HTTPS 검사 비활성화(권장하지 않음)
또는 제공하신 답변에 설명된 접근 방식에 따라 HTTPS 검사를 비활성화할 수도 있습니다. 여기에는 인증서 유효성 검사를 무시하는 신뢰 관리자 및 호스트 이름 확인 프로그램을 만드는 작업이 포함됩니다. 하지만 이 솔루션은 프로덕션 용도로는 권장되지 않습니다.
5. 호스트 이름 사용(선택 사항)
인증서를 수정할 수 없거나 HTTPS 확인을 비활성화할 수 없는 경우 웹 서비스에 연결할 때 IP 주소 대신 호스트 이름(someSubdomain.someorganisation.com)을 사용해 볼 수 있습니다. . 문제가 해결되었는지 확인하세요.
최상의 솔루션은 특정 상황과 애플리케이션에 필요한 보안 수준에 따라 다르다는 점을 기억하세요.
위 내용은 HTTPS를 통해 웹 서비스에 연결할 때 'java.security.cert.CertificateException: No Subject Alternative Names Present' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!