Heim > Java > javaLernprogramm > Wie kann ein Java-Client mit selbstsignierten SSL-Zertifikaten umgehen?

Wie kann ein Java-Client mit selbstsignierten SSL-Zertifikaten umgehen?

Susan Sarandon
Freigeben: 2024-12-19 13:17:09
Original
328 Leute haben es durchsucht

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

Java-Client verarbeitet selbstsignierte SSL-Zertifikate

Wenn ein Java-Client auf eine SSL-Verbindung zu einem Server mit einem selbstsignierten Zertifikat stößt, es kann mit einem Fehler wie dem folgenden fehlschlagen:

sun.security.validator.ValidatorException: PKIX path building failed
Nach dem Login kopieren

Option 1: Hinzufügen zu Truststore

Um Vertrauen herzustellen, fügen Sie das selbstsignierte Zertifikat zum JVM-Truststore hinzu:

<JAVA_HOME>/bin/keytool -import -v -trustcacerts \
-alias server-alias -file server.cer \
-keystore cacerts.jks -keypass changeit \
-storepass changeit
Nach dem Login kopieren

Option 2: Deaktivieren der Zertifikatsvalidierung (nicht empfohlen)

Deaktivieren Sie die Zertifikatsvalidierung mit dem folgenden 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());
Nach dem Login kopieren

Allerdings Das Deaktivieren der Zertifikatsvalidierung wird nicht empfohlen, da der Client dadurch anfällig für Man-in-the-Middle-Angriffe wird.

Das obige ist der detaillierte Inhalt vonWie kann ein Java-Client mit selbstsignierten SSL-Zertifikaten umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage