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

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

Mary-Kate Olsen
풀어 주다: 2024-12-19 21:12:11
원래의
248명이 탐색했습니다.

How Can Java Clients Handle Self-Signed SSL Certificates?

Java 클라이언트에서 자체 서명된 SSL 인증서 처리

자체 서명되거나 만료된 SSL 인증서를 사용하여 서버에 연결할 때 Java 클라이언트는 일반적으로 인증서에 대한 신뢰 부족으로 인해 오류가 발생합니다. 이 문제를 해결하려면 자체 서명된 인증서를 JVM의 신뢰 저장소에 추가하거나 모든 인증서를 신뢰하도록 클라이언트를 구성하면 됩니다.

옵션 1: 신뢰 저장소 가져오기

  • 브라우저에서 자체 서명된 인증서를 내보냅니다.
  • 인증서를 JVM으로 가져옵니다. 다음 명령을 사용하여 truststore를 사용하세요.
<JAVA_HOME>\bin\keytool -import -v -trustcacerts \
  -alias server-alias -file server.cer \
  -keystore cacerts.jks -keypass changeit \
  -storepass changeit
로그인 후 복사

옵션 2: 인증서 유효성 검사 비활성화

경고: 이는 권장되지 않습니다. SSL 보안을 손상시킵니다.

  • 검증하지 않는 신뢰 관리자를 만듭니다. 인증서:
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }

        public void checkClientTrusted(X509Certificate[] certs, String authType) { }

        public void checkServerTrusted(X509Certificate[] certs, String authType) { }
    }
};

// Install the trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
로그인 후 복사
  • HTTPS URL에 액세스:
URL url = new URL("https://hostname/index.html");
로그인 후 복사

SSL 무결성을 유지하려면 옵션 #1을 선호합니다. 또한 최적의 보안을 위해 신뢰할 수 있는 CA가 서명한 인증서를 서버에서 획득하도록 하는 것이 좋습니다.

위 내용은 Java 클라이언트는 자체 서명된 SSL 인증서를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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