2010-04-15 10 views
18

Mam jedną instalację java w systemie, który obsługuje 2 lub 3 aplikacje.Czy istnieje sposób na załadowanie różnych cacertów niż ten określony w folderze java_home/jre/lib/security?

Wszystkie aplikacje korzystają z tego samego środowiska wykonawczego.

Czy istnieje sposób na określenie różnych magazynów kluczy dla certyfikatów CA niż w java_home/jre/lib/security. To znaczy, czy istnieje opcja określenia "dodatkowego" magazynu kluczy, który jest ładowany i dodawany do certyfikatów załadowanych z java_home/jre/lib/security/cacerts?

To, czego chcę uniknąć, to konieczność ponownego zaimportowania lokalnego punktu dostępowego za każdym razem, gdy aktualizuję pakiet jdk w pudełku.

+1

pliku 'cacerts' jest zaufanych, a nie kluczy. Nie zawiera żadnych kluczy prywatnych. – EJP

Odpowiedz

44

myślę chcesz określić magazynu zaufanych certyfikatów:

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

Lub jeśli używasz certyfikatów przez JSSE (zapewne są) można kopiować do magazynu zaufanych certyfikatów jssecacerts w katalogu $JAVA_HOME/jre/lib/security/ (chociaż dalszy nadal trzeba to robić za każdym razem, gdy JDK zostanie zainstalowany/zainstalowany ponownie). JSSE firmy Sun szuka $JAVA_HOME/jre/lib/security/jssecacerts przed $JAVA_HOME/jre/lib/security/cacerts.

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

-2

Zgodnie z tym:

Java SSE Referece Guide - Customization

Można użyć właściwości systemu:

javax.net.ssl.keyStore 

odczuwalna:

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

Ale !! Nigdy nie próbowałem. Daj mi znać, czy to działa, prawda?

+4

Nie sądzę, że jest to poprawna odpowiedź, chociaż jest blisko. Właściwości javax.net.ssl.keyStore i trustStore są subtelnie różne, a tym, czego potrzebuje OP, jest dostosowanie do trustStore. –

+0

@GregS Prawdopodobnie masz rację. Feniix, czy pozwolisz nam poznać twoje wyniki? i/lub jakiego rozwiązania używałeś? – OscarRyz

+1

Ta odpowiedź jest błędna. Zobacz następną odpowiedź. – Opher

3

Te obie opcje JVM służą do zlokalizowania niestandardowego magazynu zaufanych certyfikatów i ich hasło.

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

W celu upewnienia się co zaufanych jest ładowany przez aplikację, należy dodać następujący argument, jak również,

-Djavax.net.debug=ssl:handshake 
Powiązane problemy