>Java >java지도 시간 >Java 클라이언트는 자체 서명된 SSL 인증서를 어떻게 처리할 수 있습니까?

Java 클라이언트는 자체 서명된 SSL 인증서를 어떻게 처리할 수 있습니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-19 13:17:09334검색

How Can a Java Client Handle Self-Signed SSL Certificates?

자체 서명된 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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