Anteriormente hemos visto cómo crear nuestros propios certificados digitales en un entorno de desarrollo.
El principal problema que comentábamos acerca de ésto es que la autoridad certificadora que los emitía no era confiable (sí, nosotros mismos no lo somos), por lo que en el mundo real siempre daría un fallo a la hora de verificar la firma digital de documentos, por lo que la solución es utilizar un certificado digital emitido por una autoridad certificadora de verdad.
Importando la Autoridad Certificadora de la Fundación Nacional de Moneda y Timbre al KeyStore de Java
Por defecto, el KeyStore de Java no trae incluido el certificado de la FNMT, por lo que deberemos añadirlo. En primer lugar deberemos descargarlo de la página:
http://www.dnielectronico.es/seccion_integradores/certs.html
En concreto la autoridad de validación AV FNMT DNIE y su certificado Certificado pkcs1-sha256WithRSAEncryption
Lo descargamos y descomprimimos y procedemos a buscar las herramientas necesarias para la importación de la JVM (Java Virtual Machine), que son el archivo cacerts que es donde se guardará el certificado y el programa keytool que se encarga de manejar dicho archivo.
En primer lugar, deberemos buscar donde están ubicado el JRE de nuestra JVM buscando la aplicación keytool. Las rutas son las siguientes:
<JRE_PATH>/bin/keytool
<JRE_PATH>/lib/security/cacerts
por lo que podemos proceder a importarlo con el comando y modificando previamente las rutas. Además deberemos ejecutarlo como Administrador en Windows o Super Usuario en Linux:
<JRE_PATH>/bin/keytool -import -keystore <JRE_PATH>/lib/security/cacerts -file <CERT_PATH>/AVDNIEFNMTSHA2.cer -alias AVDNIE -storepass changeit
El parámetro alias especifica el nombre con el que se guardará y el parámetro storepass es por defecto changeit para el cacerts si no lo hemos cambiado.
Comandos útiles de keytool para el KeyStore
Cambiar contraseña de cacerts (como super usuario)
<JRE_PATH>/bin/keytool -list -keystore <JRE_PATH>/lib/security/cacerts -storepasswd -new <NUEVA_CONTRASEÑA>
Listar certificados en nuestro cacerts
<JRE_PATH>/bin/keytool -list -keystore <JRE_PATH>/lib/security/cacerts -storepass <CONTRASEÑA>
Borrar certificado del cacerts (como super usuario)
<JRE_PATH>/bin/keytool -delete -alias <ALIAS> -keystore <JRE_PATH>/lib/security/cacerts
Fuentes
Este artículo fue inspirado en la entrada de blog http://vjavierf.wordpress.com/2010/05/12/importar-certificados-de-una-ca-a-java/
Comentarios