Java-Client-Zertifikate für HTTPS/SSL-Verbindungen
In Java 6 umfasst das Erstellen von HTTPS-Verbindungen mithilfe von Client-Zertifikaten einen zweifachen Prozess: das Importieren das selbstsignierte Stammzertifikat des Servers in einen Truststore und die Angabe des Client-Zertifikats und der Keystore-Informationen über das System Eigenschaften.
Importieren des Stammzertifikats des Servers
Das selbstsignierte Stammzertifikat muss in einen Truststore importiert werden. Dies kann mit dem Befehl erreicht werden:
keytool -import -alias gridserver -file gridserver.crt -storepass $PASS -keystore gridserver.keystore
Informationen zum Client-Zertifikat angeben
Um das Client-Zertifikat zu verwenden, müssen die folgenden Systemeigenschaften festgelegt werden:
-Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.keyStore=clientcertificate.p12 -Djavax.net.ssl.trustStore=gridserver.keystore -Djavax.net.debug=ssl # for verbose debugging -Djavax.net.ssl.keyStorePassword=$PASS -Djavax.net.ssl.trustStorePassword=$PASS
Beispielcode
Das folgende Codebeispiel demonstriert die Verwendung des Client-Zertifikats für eine HTTPS-Verbindung:
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault(); URL url = new URL("https://gridserver:3049/cgi-bin/ls.py"); HttpsURLConnection conn = (HttpsURLConnection)url.openConnection(); conn.setSSLSocketFactory(sslsocketfactory); InputStream inputstream = conn.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); String string = null; while ((string = bufferedreader.readLine()) != null) { System.out.println("Received " + string); }
Durch den Import des Stammzertifikats des Servers in den Truststore und die Angabe der erforderlichen Client-Zertifikatinformationen kann Java erfolgreich HTTPS-Verbindungen mit Client-Zertifikaten herstellen.
Das obige ist der detaillierte Inhalt vonWie konfiguriere ich Java-Client-Zertifikate für sichere HTTPS-Verbindungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!