Puedo generar mi propia clave privada y certificado de la siguiente manera:
openssl genrsa -out privatekey.pem 2048
openssl req -new -x509 -key privatekey.pem -out g4certificate.pem -days 1095
Copiar y pegar las partes del certificado/clave privada en una base de datos y ejecutar un kit de herramientas de prueba arroja un intercambio de claves HMAC exitoso.
Sin embargo, ahora compré un certificado SSL de GlobalSign y tengo el archivo .pfx.
¿Cómo puedo extraer la clave privada/certificado RSA equivalente similar a los utilizados cuando el kit de herramientas arrojó un intercambio de claves exitoso?
Mi intento:
Intenté convertir el archivo .pfx a un archivo .pem usando el siguiente comando:
openssl pkcs12 -nodes -in filename.pfx -out filename.pem
El archivo .pem resultante contiene 3 certificados y una clave privada con un encabezado de '-----BEGIN PRIVATE KEY-----' y no '-----BEGIN RSA PRIVATE KEY-----'.
Intenté copiar y pegar la clave privada en un documento nuevo y lo guardé como clave privada.clave. Luego lo convirtió usando el siguiente comando:
openssl rsa -in privatekey.key -out privatekey_new.key
Esto produce un archivo con el encabezado '-----BEGIN RSA PRIVATE KEY-----' que es como la clave RSA autogenerada.
Sin embargo, al intentar intercambiar claves, aparece el siguiente error:
DEBUG [AbstractTest] - Failed:
java.security.InvalidKeyException: Wrong key usage
at javax.crypto.Cipher.init(Cipher.java:1674)
at javax.crypto.Cipher.init(Cipher.java:1580)
Respuesta1
Uso incorrecto de la clave
Significa que el certificado no se puede utilizar para lo que está intentando.