linux - stores - ssl certificate key
No se puede obtener la clave privada con openssl(sin lĂnea de inicio: pem_lib.c: 703: Esperando: CUALQUIER CLAVE PRIVADA) (4)
Tengo un archivo .key, cuando lo hago
openssl rsa -text -in file.key
yo obtengo
unable to load Private Key
140000419358368:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY
También tengo un archivo .cer y cuando lo hago
openssl x509 -text -in file.cer
yo obtengo
unable to load certificate
140387178489504:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE
Pero si como he señalado here ejecuto el comando como:
openssl x509 -text -inform DER -in file.cer
yo obtengo
Certificate:
Data:
Version: 3 (0x2)
Some more information
...
-----BEGIN CERTIFICATE-----
MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEF
...
-----END CERTIFICATE-----
Pero eso no parece funcionar con la clave, porque cuando ejecuto
openssl rsa -text -inform DER -in aaa010101aaa__csd_10.key
yo obtengo
unable to load Private Key
140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337:
140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849:
140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=RSA
140004844304032:error:04093004:rsa routines:OLD_RSA_PRIV_DECODE:RSA lib:rsa_ameth.c:115:
140004844304032:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:tasn_dec.c:1337:
140004844304032:error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error:tasn_dec.c:849:
140004844304032:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 error:tasn_dec.c:769:Field=version, Type=PKCS8_PRIV_KEY_INFO
¿Cómo puedo obtener la clave privada y su certificado?
En mi ejecución de openssl pkcs12 -export -out cacert.pkcs12 -in testca/cacert.pem
, recibí el siguiente mensaje:
no se puede cargar la clave privada 140707250050712: error: 0906D06C: Rutinas PEM: PEM_read_bio: no hay línea de inicio: pem_lib.c: 701: Esperando: CUALQUIER CLAVE PRIVADA`
Consiguió esto resuelto proporcionando el archivo de clave junto con el comando. El interruptor es -inkey inkeyfile.pem
Me encontré con el error ''Esperando: CUALQUIER CLAVE PRIVADA'' al usar openssl en Windows (Ubuntu Bash y Git Bash tenían el mismo problema).
La causa del problema fue que había guardado la clave y los archivos de certificado en el Bloc de notas con UTF8. Volver a guardar ambos archivos en formato ANSI solucionó el problema.
Mis dos centavos: encontré el mismo mensaje de error en RHEL7.3 mientras ejecutaba el comando openssl con el certificado de CA raíz. La razón es que, al descargar el certificado del servidor AD, la codificación se seleccionó como DER en lugar de Base64. Una vez que se seleccionó la versión correcta de codificación para la nueva descarga de certificado, se resolvió el error
Espero que esto ayude a los nuevos usuarios :-)
Parece que tienes un certificado en formato DER
en lugar de PEM
. Esta es la razón por la que funciona correctamente cuando proporciona el argumento de la línea de comandos de -inform PEM
(que le dice a openssl qué formato de entrada debe esperar).
Es probable que su clave privada esté usando la misma codificación. Parece que el comando openssl rsa
también acepta un argumento en forma de información, así que intente:
openssl rsa -text -in file.key -inform DER
Un archivo codificado PEM
es una codificación de texto plano que se parece a algo como:
-----BEGIN RSA PRIVATE KEY-----
MIGrAgEAAiEA0tlSKz5Iauj6ud3helAf5GguXeLUeFFTgHrpC3b2O20CAwEAAQIh
ALeEtAIzebCkC+bO+rwNFVORb0bA9xN2n5dyTw/Ba285AhEA9FFDtx4VAxMVB2GU
QfJ/2wIRANzuXKda/nRXIyRw1ArE2FcCECYhGKRXeYgFTl7ch7rTEckCEQDTMShw
8pL7M7DsTM7l3HXRAhAhIMYKQawc+Y7MNE4kQWYe
-----END RSA PRIVATE KEY-----
Mientras que DER
es un formato de codificación binario.
Actualizar
Algunas veces las claves se distribuyen en formato PKCS # 8 (que puede estar codificado PEM o DER). Prueba esto y ve lo que obtienes:
openssl pkcs8 -in file.key -inform der