Tengo un archivo .key que es un archivo de clave privada con formato PEM. No hice este archivo pero lo obtuve de alguna parte.
Quería ver su hash MD5 con la herramienta openssl como el siguiente comando.
openssl rsa -in server.key -modulus -noout
Pero esto genera el siguiente error.
unable to load Private Key
13440:error:0906D06C:PEM routines:PEM_read_bio:no start line:.\crypto\pem\pem_lib.c:648:Expecting: ANY PRIVATE KEY
Aquí hay algo de asn1parse del archivo .key.
openssl asn1parse -in server.key
0:d=0 hl=4 l= 603 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :00
7:d=1 hl=3 l= 129 prim: INTEGER :C141201603899993919CBAA56985E9C7
C6A2AF713A02F5FE88D38CEFBED9304599689280B84B0AB577A9719CA20DDA1246A894AF397A2C57
EE5A582B036CC367E3667454DCD82DBDBF187C35FE39F61C71B517DDDF576F5471B4EC2E045E0F9D
619F5616C4E832F00CBD0DBF41B4BA3CBC4B4B603AE1FE61965917DA732E0DEF
139:d=1 hl=2 l= 3 prim: INTEGER :010001
144:d=1 hl=3 l= 128 prim: INTEGER :1687B9AE67562CEDEBDD7A531B84CDB7
093CE138519B93C34B7F626076FF0A262B16EA71904ACB6251A39307C04ADE202055BA13DD9F1539
6123EE408183361A9BC08B9413FA360EA928E48CC3F52B33ACF2980758F02BA2139F652F30A257C2
2E45D7C25835FC4D22B9ECECC12AB632318D4F47E1EBDAD9781B96BCFF03A2D1
...
¿Hay algo más que pueda intentar?
openssl
private-key
tkpl
fuente
fuente
scp
copiar el archivo de Windows a Ubuntu. Para solucionarlo, eliminé el archivo en Ubuntu, creé un nuevo archivo vacío allí, y usévim
y luego pegué el contenido correcto.Respuestas:
Abra el archivo de clave en Notepad ++ y verifique la codificación. Si dice UTF-8-BOM, cámbielo a UTF-8. Guarde el archivo y vuelva a intentarlo.
fuente
Cambié el encabezado y pie de página del archivo PEM a
y
¡Por fin funciona!
fuente
-inform pem
al comando para obtener el mismo resultado. Ejopenssl rsa -in server.key -modulus -noout -inform pem
.su archivo .key contiene caracteres ilegales. puede verificar el archivo .key como este:
salida "server.key: UTF-8 Unicode (con BOM) text" significa que es un texto sin formato, no un archivo de clave. La salida correcta debe ser "server.key: PEM RSA private key".
use el siguiente comando para eliminar caracteres ilegales:
La clave new_server.key debería ser correcta.
Para más detalles, puede hacer clic aquí , gracias por la publicación.
fuente
file server.key
este comando me ayudó a solucionar el problema. Gracias.Que parezca correcto
asn1parse
me lleva a creer que no está codificado en PEM.Como parece ser ASN.1, intente:
Observe el
-inform DER
para cambiar entre codificaciones.fuente
Crear certificado CA
fuente
Elimine cualquier espacio en blanco al comienzo del archivo .key.
fuente
Resolución de mi lado. Cambiar la codificación a UTF8 sin BOM
fuente
Estoy en Windows 10 y guardé mi clave con la codificación de Windows1252 y funcionó para mí. En otra pregunta de StackOverflow, algunas personas estaban solucionando esto con UTF-8 con BOM .
En otras palabras, puede ser la codificación del archivo.
fuente
Puede ser que la clave privada en sí no esté presente en el archivo. También me enfrenté al mismo problema, pero el problema es que no hay una clave privada presente en el archivo.
fuente
esto podría suceder si está intentando utilizar su clave pública para crear un certificado en lugar de su clave privada. deberías usar clave privada
fuente
Tuve el mismo problema hoy, y noté que esto ocurre cuando el propietario / grupo de archivo no es el que ejecuta la aplicación que lee la clave. Quizás también sea tu problema.
fuente
Ninguna de las otras respuestas parecía correcta en mi caso, sin embargo, encontré la respuesta real aquí.
Mi
id_rsa
archivo ya estaba en formato PEM, solo necesitaba agregar la.pem
extensión al nombre del archivo.Gracias a
Las posibles opciones para el
openssl rsa -inform
parámetro son una de las siguientes:PEM
DER
fuente
En nuestro caso, lo que causó el problema es que la clave privada que intentábamos usar estaba cifrada con una frase de contraseña.
Tuvimos que descifrar la clave privada
ssh-keygen -p
antes de poder usar la clave privada con la herramienta de línea de comandos openssl.fuente
¿Por qué no usar cetificate bot
Obtener un certificado
fuente