Eu tenho um arquivo .key que é um arquivo de chave privada com formato PEM. Não fiz esse arquivo, mas consegui de algum lugar.
Eu queria ver seu hash MD5 com a ferramenta openssl como o comando abaixo.
openssl rsa -in server.key -modulus -noout
Mas isso gera um erro abaixo.
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
Aqui estão algumas asn1parse do arquivo .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
...
Posso tentar mais alguma coisa?
openssl
private-key
tkpl
fonte
fonte
scp
copiar o arquivo do Windows para o Ubuntu. Para corrigir isso, apaguei o arquivo no Ubuntu, criei um novo arquivo vazio ali, useivim
e colei o conteúdo correto.Respostas:
Abra o arquivo de chave no Notepad ++ e verifique a codificação. Se estiver escrito UTF-8-BOM, mude para UTF-8. Salve o arquivo e tente novamente.
fonte
Mudei o cabeçalho e rodapé do arquivo PEM para
e
Finalmente, funciona!
fonte
-inform pem
ao comando para obter o mesmo resultado. Exopenssl rsa -in server.key -modulus -noout -inform pem
.seu arquivo .key contém caracteres ilegais. você pode verificar o arquivo .key assim:
output "server.key: UTF-8 Unicode (with BOM) text" significa que é um texto simples, não um arquivo de chave. A saída correta deve ser "server.key: PEM RSA private key".
use o comando abaixo para remover caracteres ilegais:
O new_server.key deve estar correto.
Para mais detalhes, você pode clicar aqui , obrigado pela postagem.
fonte
file server.key
este comando me ajudou a resolver o problema. Obrigado.Criar certificado CA
fonte
O fato de parecer OK
asn1parse
me leva a acreditar que não é codificado por PEM.Porque parece ser ASN.1, tente:
Observe o
-inform DER
para alternar entre as codificações.fonte
Remova qualquer espaço em branco no início do arquivo .key.
fonte
Resolução do meu lado. Mude a codificação para UTF8 sem BOM
fonte
Estou no Windows 10 e salvei minha chave com a codificação Windows1252 e funcionou para mim. Em outra questão StackOverflow, algumas pessoas estavam corrigindo isso com UTF-8 com BOM .
Em outras palavras, pode ser a codificação do arquivo.
fonte
Pode ser que a própria chave privada não esteja presente no arquivo. Também enfrentei o mesmo problema, mas o problema é que não há uma chave privada presente no arquivo.
fonte
isso pode acontecer se você estiver tentando usar sua chave pública para criar um certificado em vez de sua chave privada. você deve usar chave privada
fonte
Tive o mesmo problema hoje e percebi que isso ocorre quando o proprietário / grupo do arquivo não é o único que está executando o aplicativo que lê a chave. Talvez seja o seu problema também.
fonte
Nenhuma das outras respostas parecia correta no meu caso, no entanto, encontrei a verdadeira resposta aqui
Meu
id_rsa
arquivo já estava no formato PEM, eu só precisava adicionar a.pem
extensão ao nome do arquivo.Graças a
As opções possíveis para o
openssl rsa -inform
parâmetro são uma das seguintes:PEM
DER
fonte
Em nosso caso, o que causou o problema é que a chave privada que estávamos tentando usar foi criptografada com uma senha longa.
Tivemos que descriptografar a chave privada usando
ssh-keygen -p
antes de usar a chave privada com a ferramenta de linha de comando openssl.fonte