자체 서명된 SSL 인증서를 처리하는 Java 클라이언트
Java 클라이언트가 자체 서명된 인증서가 있는 서버에 대한 SSL 연결을 발견하면, 다음과 같은 오류로 인해 실패할 수 있습니다.
sun.security.validator.ValidatorException: PKIX path building failed
옵션 1: 신뢰 저장소에 추가
신뢰를 설정하려면 자체 서명된 인증서를 JVM 신뢰 저장소에 추가하세요.
<JAVA_HOME>/bin/keytool -import -v -trustcacerts \ -alias server-alias -file server.cer \ -keystore cacerts.jks -keypass changeit \ -storepass changeit
옵션 2: 인증서 유효성 검사 비활성화(권장하지 않음)
다음을 사용하여 인증서 유효성 검사를 비활성화합니다. code:
// Trust manager that does not validate certificate chains TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { @Override public void checkClientTrusted(X509Certificate[] certs, String authType) {} @Override public void checkServerTrusted(X509Certificate[] certs, String authType) {} @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } } }; // Install trust manager SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
그러나 인증서 유효성 검사를 비활성화하면 클라이언트가 중간자 공격에 취약해지기 때문에 권장되지 않습니다.
위 내용은 Java 클라이언트는 자체 서명된 SSL 인증서를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!