2012-07-28 82 views
5

¿Cómo importo un archivo .jks en el almacén de confianza de java security? Todo el tutorial que estoy viendo está usando un archivo ".crt". Sin embargo, solo tengo el archivo ".jks" que también es el almacén de claves que generé usando el comando keytool.Cómo importar un certificado jks en java trust store

Actualmente, estoy siguiendo this tutorial.

Pude generar un keystore y un par de claves Java y generar una solicitud de firma de certificado (CSR) para un almacén de claves Java existente, que se basa en el tutorial. Pero no puedo importar un certificado de CA raíz o intermedio a un almacén de claves Java existente e importar un certificado primario firmado a un almacén de claves Java existente, porque está buscando un archivo ".cert".

¿Me falta algo sobre los pasos enumerados en el tutorial? ¿Cómo puedo confiar en un certificado si el único archivo que tengo es el archivo ".jks"? ¿Y para qué sirve el archivo ".csr"?

Tenga en cuenta que estoy usando Windows.

+0

¿Podría indicar lo que está tratando de lograr? ¿Estás tratando de configurar un servidor? ¿O está tratando de usar la autenticación del cliente? ¿O ambos? ¿Estás usando un marco específico en el cliente y/o el servidor? –

+0

No estoy usando ningún marco. Estoy tratando de hacer una autenticación de servidor. Necesito validar si el servidor al que me estoy conectando es legítimo dado el certificado. – Arci

+0

Entonces, ¿tiene un cliente, ningún servidor y se le ha proporcionado un almacén de claves '.jks' para trabajar? Si solo es el cliente y no está utilizando la autenticación del cliente, entonces no necesita generar un par de claves. –

Respuesta

10

".jks"es el almacén de confianza, o al menos debería serlo si lo asigna a JSSE. Debe agregar los certificados de su CA a ese archivo. El software buscará la cadena de certificados iterando a través de los certificados. La clave privada debe permanecer en el archivo ".jks" (protegido con contraseña).

En otras palabras, debe importar certificados al ".jks" no exportar certificados fuera de él. Es posible que deba descargar los certificados de su proveedor específico por separado si no están incluidos en la respuesta de su solicitud de certificado. Probablemente también podría exportarlos desde su navegador favorito. Normalmente, estos se almacenan en formato DER de X5.09 (que debe ser compatible con Java keytool).

Pasos (en general):

  1. generar un par & petición del CERT clave, almacenar en un nuevo o almacén de claves (.jks)
  2. existente Enviar la solicitud de certificado para ser firmado, obtener la cadena a partir de la certificado que solicitó
  3. Importar cadena de certificados en el almacén de claves con clave privada
  4. Generar nuevo o usar el almacén de claves existente para la parte que necesita hacer la verificación (al menos uno o más clientes cuando nosotros ing SSL) e importe la cadena de certificados
  5. Confíe en un certificado de la cadena de certificados en el almacén de claves anterior, probablemente el certificado más alto (el certificado "raíz").
  6. Configure y pruebe las partes, p. un servidor que usa el almacén de claves con la clave privada y varios clientes que usan el último almacén de claves.
+0

Esta es la respuesta genérica, si desea obtener más detalles o detalles, indíquelo, porque no puedo proporcionar información adicional sin más detalles. –

+0

¡Gracias por aclarar eso! Solía ​​pensar que al agregar un certificado dentro de un almacén de claves significa que en realidad está agregando el certificado dentro de JVM, no solo un solo archivo de almacén de claves. ¿Puede enseñarme cómo configurar Java para que confíe en un certificado autofirmado al usar HttpsURLConnection sin configurarlo para que confíe en todos los certificados? – Arci

+0

No, pero no es necesario. Normalmente, debe configurar una aplicación Java para usar una clave específica por alias. Java solo aceptará este alias si puede encontrar toda la cadena de certificados, pero para los certificados autofirmados esa cadena tendrá una longitud de 1. Solo necesita confiar en los certificados * en el otro punto final * donde no tiene el llave privada. P.ej. al crear una conexión, un cliente intentará ver si puede construir una cadena con un certificado de confianza que sea válido en un momento determinado. Para esto, necesita agregar o crear un almacén de claves e importar y confiar en el certificado autofirmado. –

Cuestiones relacionadas