2010-12-13 16 views
7

Mac OS X tiene el almacén de claves de CA en /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts. Este almacén de claves parece ser sobrescrito por cada actualización de Java, que es muy molesto ya que tenemos CA internas para entornos de desarrollo, pruebas ...¿Cómo conservar el almacén de claves de CAcerts en Mac a través de las actualizaciones?

¿Hay alguna forma de preservar los cambios del almacén de claves en los JSR de Apple, y ahora, con Snow Leo JSR3, también a través de las actualizaciones para los paquetes de desarrollador de Java por separado (¿cuyos JDK usan el mismo almacén de claves)?

Respuesta

6

/System/Library/Frameworks/JavaVM.framework/Home/ es un enlace simbólico a Versions/CurrentJDK/Home dentro de JavaVM.framework. Obviamente, esto cambiará con una nueva versión. Use la ruta completa (por ejemplo, /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home) y no cambiará en las actualizaciones.

3

Los siguientes parámetros se pueden utilizar para especificar la ubicación de los cacerts presentar a java:

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

hacer una copia de los cacerts en el directorio de inicio de Java (con las CA interna) y ponerlo en algún lugar en su directorio de inicio A continuación, coloque la ruta completa a la ubicación del archivo cacerts como el valor de la propiedad javax.net.ssl.trustStore anterior. Esa copia no será sobreescrita por las actualizaciones de Java. La contraseña predeterminada es 'cambiar'.

Dos desventajas de este enfoque son:

  • Su archivo no recibirá actualizaciones al archivo cacerts en el SDK. Esto es principalmente un problema si una autoridad certificadora está comprometida.
  • Donde sea que necesite cacerts personalizados (herramientas de compilación, servidor de aplicaciones, etc.), estos parámetros deben ser especificados.
+0

Interesante ... pero otro problema es que la contraseña del almacén de claves se mostrará a cualquier usuario que pueda enumerar los procesos en esa máquina. –

+1

Te refieres a la contraseña de la tienda de confianza, ¿verdad? Es un problema, pero podría mitigarse haciendo algo similar a lo que propongo aquí para el paso de almacén de claves: http://stackoverflow.com/a/10645013/290918 – kldavis4

2

Parece que las cosas han cambiado en Mac OS X 10.6.8 Snow Leopard. Ahora /System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts es un enlace simbólico a /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/cacerts, que no cambiará en las actualizaciones, si tenemos suerte.

Cuestiones relacionadas