2010-04-15 1 views
18

Ich habe eine einmalige Installation von Java in einem System, das 2 oder 3 Anwendungen ausführt.Gibt es eine Möglichkeit, andere Cacerts als die im Ordner java_home/jre/lib/security angegebenen zu laden?

Alle Anwendungen verwenden die gleiche Laufzeit.

Gibt es eine Möglichkeit, für die Zertifikate andere Keystores anzugeben als in java_home/jre/lib/security. Das heißt, gibt es eine Option zum Angeben eines "zusätzlichen" Schlüsselspeichers, der geladen und den von java_home/jre/lib/security/cacerts geladenen Zertifikaten hinzugefügt wird?

Was ich vermeiden will, ist, unsere lokalen ca jedes Mal neu importieren, wenn ich die jdk in der Box aktualisieren.

+1

Die 'cacerts' Datei ist ein Trusts, kein Schlüsselspeicher. Es enthält keine privaten Schlüssel. – EJP

Antwort

44

Ich glaube, Sie die Trusts angeben möchten:

java -Djavax.net.ssl.trustStore=/home/gene/mycacerts ... 

Oder wenn Sie Zertifikate über das JSSE verwenden (Sie wahrscheinlich sind), können Sie Ihre truststore zu jssecacerts im $JAVA_HOME/jre/lib/security/ Verzeichnis kopieren (obwohl Sie würde muss das immer noch tun, wenn ein JDK installiert/neu installiert wurde). Suns JSSE sucht nach $JAVA_HOME/jre/lib/security/jssecacerts vor $JAVA_HOME/jre/lib/security/cacerts.

Siehe http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#X509TrustManager

-2

Nach dieser:

Java SSE Referece Guide - Customization

Sie könnten die Systemeigenschaft verwenden:

javax.net.ssl.keyStore 

Like:

java -Djavax.net.ssl.keyStore=youkeystore YourProgram 

Aber !! Ich habe es noch nie versucht. Lass es mich wissen, wenn es funktioniert, oder?

+4

Ich glaube nicht, dass dies die richtige Antwort ist, obwohl es nahe ist. Die Eigenschaften javax.net.ssl.keyStore und trustStore unterscheiden sich geringfügig. Was das OP benötigt, ist die TrustStore-Anpassung. –

+0

@GregS Sie haben wahrscheinlich Recht. Feniix, würden Sie uns Ihre Ergebnisse wissen lassen? und/oder was war die Lösung, die Sie verwenden? – OscarRyz

+1

Diese Antwort ist falsch. Bitte sehen Sie die nächste Antwort. – Opher

3

Diese beiden Jvm Optionen verwendet werden individuelle und-Vertrauens ihr Passwort zu suchen.

java -Djavax.net.ssl.trustStore=custompath/cacerts -Djavax.net.ssl.trustStorePassword=changeit 

Um sicher zu machen, was trusts durch die Anwendung geladen wird, fügen Sie auch folgende Argument,

-Djavax.net.debug=ssl:handshake 
Verwandte Themen