Beim Versuch, mithilfe eines selbstsignierten Zertifikats eine Verbindung zu einer Website herzustellen Bei Verwendung eines signierten Zertifikats können bei Java-Anwendungen aufgrund von Fehlern bei der Zertifikatsüberprüfung Fehler auftreten. In diesem Artikel werden Lösungen zur Lösung dieses Problems unter Einhaltung spezifischer Anforderungen vorgestellt.
Der empfohlene Ansatz besteht darin, eine benutzerdefinierte SSLSocketFactory zu erstellen, die das vertrauenswürdige selbstsignierte Zertifikat enthält. Dadurch kann die Anwendung dem Zertifikat für eine bestimmte Verbindung selektiv vertrauen. So implementieren Sie es:
Laden Sie den KeyStore mit dem selbstsignierten Zertifikat:
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); keyStore.load(trustStore, trustStorePassword); trustStore.close();
Erstellen Sie eine TrustManagerFactory zur Initialisierung TrustManagers:
TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(keyStore);
Initialisieren Sie einen SSLContext und rufen Sie die SSLSocketFactory ab:
SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(null, tmf.getTrustManagers(), null); sslFactory = ctx.getSocketFactory();
Konfigurieren Sie die HttpsURLConnection mit SSLSocketFactory:
HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(sslFactory);
Das obige ist der detaillierte Inhalt vonWie kann ich einem selbstsignierten Zertifikat für eine bestimmte Java-Verbindung vertrauen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!