2010-11-04 19 views
33

Estoy escribiendo una aplicación que usa SSL. Por lo tanto, tengo un almacén de claves ficticio y un almacén ficticio falso que deseo suministrar a mi cliente. ¿Hay alguna carpeta predeterminada para ponerlos dentro de mi distribución? p. docs, lib, bin ... etc. ¿Dónde suele colocarse el almacén de claves en el servidor y dónde suele colocarse el truststore en el cliente?¿Cuál es la ubicación predeterminada para keystore/truststore de aplicaciones Java?

Gracias

Respuesta

28

En Java, de acuerdo con la JSSE Reference Guide, no hay por defecto para el keystore, el valor predeterminado para la truststore es "jssecacerts, si es que existe. De lo contrario, cacerts".

Algunas aplicaciones usan ~/.keystore como almacén de claves predeterminado, pero esto no está exento de problemas (principalmente porque es posible que no desee que toda la aplicación ejecutada por el usuario use ese almacén de confianza).

me gustaría sugerir el uso de valores específicos de la aplicación que combines con su solicitud de cambio, que tendería a ser más aplicables en general.

+1

Keystore y Truststore son terminología general de PKI y no son específicas de Java. – user93353

+0

@ user93353, varía según la implementación. PKI habla sobre la confianza de varias maneras, pero eso puede ser "trust store", "trust anchors" o simplemente "trusted certificates". En Windows/schannel, también obtiene la "Tienda de Autoridades de certificación raíz de confianza", y así sucesivamente. AFAIK, no hay una terminología uniforme. – Bruno

+20

Más específicamente, las ubicaciones predeterminadas son // seguridad/lib y jssecacerts // seguridad/lib cacerts y se reemplaza con la propiedad del sistema javax.net.ssl.trustStore. – Eric

14

como Bruno dijo, es mejor configurar usted mismo. Así es como lo hago. Comience creando un archivo de propiedades (/etc/myapp/config.properties).

javax.net.ssl.keyStore = /etc/myapp/keyStore 
javax.net.ssl.keyStorePassword = 123456 

A continuación, cargue las propiedades de su código en su entorno. Esto hace que tu aplicación sea configurable.

FileInputStream propFile = new FileInputStream("/etc/myapp/config.properties"); 
Properties p = new Properties(System.getProperties()); 
p.load(propFile); 
System.setProperties(p); 
+0

HI Kristian Benoit - Su respuesta parece ser lógica - ¿puede por favor elaborar sus detalles de respuesta? O remitir un enlace de blog ... para obtener un tutorial completo. Sry, soy un poco nuevo en keystore, agradecería tu esfuerzo –

Cuestiones relacionadas