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

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

Susan Sarandon
풀어 주다: 2024-12-19 13:17:09
원래의
294명이 탐색했습니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿