2016-09-29 6 views
0
KeyStore ks = KeyStore.getInstance("PKCS12"); 
FileInputStream fis = new FileInputStream("/path/to/file.p12"); 
ks.load(fis, "password".toCharArray()); 
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); 
kmf.init(ks, "password".toCharArray()); 
SSLContext sc = SSLContext.getInstance("TLS"); 
sc.init(kmf.getKeyManagers(), null, null); 

Dieser Code funktioniert einwandfrei. Aber gibt es irgendeine Möglichkeit, keystore.jks für diesen Fall zu verwenden? Zum Beispiel habe ich file.p12 in keystore.jks mit dem Tool pkcs12import mit einem Alias ​​importiert. Dann verwende ich System.setProperty ("javax.net.ssl.keyStore", "C: /Sun/SDK/jdk/jre/lib/security/keystore.jks"); und nicht Zertifikatspfad und das Passwort in Java-Code schreiben, und nehmen Sie aus, dass keystore.jks DateiFordern Sie eine URL an, die Client-Zertifikatauthentifizierung

+0

Sie findet Sie können auch eine Systemeigenschaft für den Geschäftstyp angeben, sodass Sie nicht nach JKS importieren müssen. – erickson

+0

Mögliches Duplikat von [java - Pfad zu trustStore - set-Eigenschaft funktioniert nicht?] (Http://stackoverflow.com/questions/2138574/java-path-to-truststore-set-property-doesnt-work) – Marged

+0

Für Systemeigenschaft Ich benutze keystore.jks, wo ich viele Zertifikate importiert habe, also kann ich es nicht benutzen. –

Antwort

0

Ja, es ist möglich, einen jks Schlüsselspeicher zu verwenden, um die Zertifikate zu behandeln, ein Beispiel hierfür kann here

Verwandte Themen