Heim > Java > javaLernprogramm > Wie gehe ich mit selbstsignierten oder abgelaufenen SSL-Zertifikaten in Java um?

Wie gehe ich mit selbstsignierten oder abgelaufenen SSL-Zertifikaten in Java um?

Susan Sarandon
Freigeben: 2025-01-01 10:15:11
Original
966 Leute haben es durchsucht

How to Handle Self-Signed or Expired SSL Certificates in Java?

Überschreiben der SSL-Zertifikatsvalidierung in Java-Clients

Beim Herstellen einer Verbindung zu Servern mit selbstsignierten oder abgelaufenen SSL-Zertifikaten ist das Standardverhalten von Java wie folgt die Verbindung ablehnen. Um solche Verbindungen zu ermöglichen, haben Sie zwei Hauptoptionen:

Option 1: Hinzufügen des Zertifikats zum Truststore

Dabei geht es um den Aufbau einer Vertrauenskette durch den Import des Serverzertifikats in den Truststore der JVM:

<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: Zertifikat deaktivieren Validierung

Dieser Ansatz wird nicht empfohlen, da er die Sicherheit schwächt, kann aber mit dem folgenden Code durchgeführt werden:

// Create a trust manager that doesn't validate certificate chains
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 all-trusting trust manager
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());

// Access the HTTPS URL without certificate validation
URL url = new URL("https://hostname/index.html");
Nach dem Login kopieren

Empfehlung

Für erhöhte Sicherheit wird dringend empfohlen, die Zertifikatvalidierung (Option 2) nicht zu deaktivieren und stattdessen eine seriöse Zertifizierungsstelle zum Signieren Ihres Zertifikats zu verwenden Serverzertifikat (oder importieren Sie das selbstsignierte Zertifikat in den Truststore).

Das obige ist der detaillierte Inhalt vonWie gehe ich mit selbstsignierten oder abgelaufenen SSL-Zertifikaten in Java um?. 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