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

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

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-19 21:12:11226검색

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

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