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"에는 다음이 포함됩니다.
대체 솔루션
제안된 솔루션의 1단계 관련:
2단계에 대해 제안된 솔루션:
권장 접근 방식
다음 대안을 고려하십시오.
// 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!