Java 1.4, los certificados, y la p…
Ayer estuve una hora tratando de que la herramienta keytool de java 1.4 importe un certificado. Sí, ya sé que esa versión es obsoleta, pero en este caso no hay otra opción. El tema es que luego de miles de pruebas no había forma de que reconociera el certificado como X.509 (aunque realmente fuera así).
Pues bien, importé el certificado en Java 1.5 y ningún drama, entonces armé un nuevo certificado de prueba con una clave de menor longitud y… bingo! la versión 1.4.2 no acepta longitudes de clave mayores a 2048, como era de esperarse debido a restricciones de exportación.
Pero yo quiero mi certificado con clave de 4096 bits! Googleando un poco encontré un hermoso documento donde unos buenos muchachos rusos explican cómo habilitar la utilización de claves de mayor longitud.
Para ello:
- Suponiendo que el JRE se encuentra en /usr/lib/j2se/1.4/jre/
- Descargar e instalar el jar de BouncyCastle CryptoProvider en $JRE/lib/ext
- Descargar e instalar los archivos de la Unlimited Strength Jurisdiction Policy 1.4.2 en $JRE/lib/security
- Modificar el archivo $JRE/lib/security/java.securityestableciendo los proveedores de seguridad como sigue:
security.provider.1=sun.security.provider.Sun security.provider.2=org.bouncycastle.jce.provider.BouncyCastleProvider security.provider.3=com.sun.net.ssl.internal.ssl.Provider security.provider.4=com.sun.rsajca.Provider security.provider.5=com.sun.crypto.provider.SunJCE security.provider.6=sun.security.jgss.SunProvider
El de BouncyCastle debe ser el segundo.
Y con eso debería alcanzar para poder utilizar certificados con clave de 4096 bits. O eso espero…
Bueno los dejo por ahora así como algo. Saludos!