2010-12-13 13 views
7

Mac OS X ha il keystore CA in /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts. Questo keystore sembra essere sovrascritto da ogni aggiornamento Java, il che è molto fastidioso dato che abbiamo CA interne per ambienti di sviluppo, test ...Come conservare il keystore CAcerts su Mac attraverso gli aggiornamenti?

C'è un modo per preservare le modifiche del keystore attraverso le JSR Apple, e ora, con Snow Leo JSR3, anche attraverso gli aggiornamenti per i pacchetti degli sviluppatori Java separati (i cui JDK usano lo stesso keystore)?

risposta

6

/System/Library/Frameworks/JavaVM.framework/Home/ è un collegamento simbolico a Versions/CurrentJDK/Home all'interno di JavaVM.framework. Ovviamente questo cambierà con una nuova versione. Utilizza il percorso completo (ad esempio /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home) e non cambierà tra gli aggiornamenti.

3

I seguenti parametri possono essere utilizzati per specificare la posizione dei cacerts file per Java:

-Djavax.net.ssl.trustStore=<cacerts.location> 
-Djavax.net.ssl.trustStorePassword=changeit 

Effettuare una copia dei cacerts nella directory java casa (con CA interna) e metterlo da qualche parte nel vostro home directory. Quindi inserire il percorso completo nella posizione del file cacerts come valore della proprietà javax.net.ssl.trustStore sopra. Quella copia non verrà sovrascritta dagli aggiornamenti Java. La password predefinita è 'changeit'.

Due aspetti negativi di questo approccio sono:

  • Il file non sarà possibile ottenere tutti gli aggiornamenti al file cacerts nel SDK. Questo è principalmente un problema se un'autorità di certificazione è compromessa.
  • Ovunque siano necessari i cacerts personalizzati (strumenti di compilazione, server delle app, ecc.), È necessario specificare questi parametri.
+0

Interessante ... ma un altro problema è che la password del keystore verrà visualizzata a qualsiasi utente che possa elencare i processi su quella macchina. –

+1

Intendi la password dell'archivio di fiducia, giusto? È un problema, ma potrebbe essere mitigato facendo qualcosa di simile a ciò che propongo qui per il passaggio del keystore: http://stackoverflow.com/a/10645013/290918 – kldavis4

2

Sembra che le cose siano cambiate in Mac OS X 10.6.8 Snow Leopard. Ora /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts è un link simbolico a /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts, che non cambierà sugli aggiornamenti, se siamo fortunati.

Problemi correlati