2015-07-25 20 views
12

Ho un file .key, quando faccioNon è possibile ottenere la chiave privata con OpenSSL (senza linea di partenza: pem_lib.c: 703: Previsione: ANY chiave privata)

openssl rsa -text -in file.key

ottengo

unable to load Private Key 
140000419358368:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY 

Inoltre ho un file con estensione cer e quando lo faccio

openssl x509 -text -in file.cer

ottengo

unable to load certificate 
140387178489504:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE 

Ma se, come sottolineato here ho eseguire il comando come:

openssl x509 -text -inform DER -in file.cer

ottengo

Certificate: 
    Data: 
     Version: 3 (0x2) 
     Some more information 
     ... 
-----BEGIN CERTIFICATE----- 
MIIEdDCCA1ygAwIBAgIUMjAwMDEwMDAwMDAxMDAwMDU4NjcwDQYJKoZIhvcNAQEF 
... 
-----END CERTIFICATE----- 

ma questo non significa sembra funzionare con la chiave, perché quando corro

openssl rsa -text -inform DER -in aaa010101aaa__csd_10.key

ottengo

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 

Come posso ottenere la chiave privata e il suo certificato?

risposta

8

Sembra che si disponga di un certificato nel formato DER anziché PEM. Questo è il motivo per cui funziona correttamente quando si fornisce l'argomento della riga di comando -inform PEM (che indica a openssl quale formato di input prevedere).

È probabile che la chiave privata stia utilizzando la stessa codifica. Sembra come se il comando openssl rsa accetta anche un argomento -inform, in modo da provare:

openssl rsa -text -in file.key -inform DER 

Un PEM file codificato è una codifica di testo semplice che assomiglia a:

-----BEGIN RSA PRIVATE KEY----- 
MIGrAgEAAiEA0tlSKz5Iauj6ud3helAf5GguXeLUeFFTgHrpC3b2O20CAwEAAQIh 
ALeEtAIzebCkC+bO+rwNFVORb0bA9xN2n5dyTw/Ba285AhEA9FFDtx4VAxMVB2GU 
QfJ/2wIRANzuXKda/nRXIyRw1ArE2FcCECYhGKRXeYgFTl7ch7rTEckCEQDTMShw 
8pL7M7DsTM7l3HXRAhAhIMYKQawc+Y7MNE4kQWYe 
-----END RSA PRIVATE KEY----- 

Mentre DER è un binario formato di codifica.

Aggiornamento

A volte i tasti sono distribuiti in formato PKCS # 8 (che può essere sia PEM o DER codificati). Provate questo e vedere quello che si ottiene:

openssl pkcs8 -in file.key -inform der 
+0

si sta andando ad avere per mostrarci ciò che il file della chiave privata sembra, altrimenti stiamo solo supponendo. – larsks

+0

Ok, ma è in binario, come posso mostrarti il ​​contenuto della chiave? Ho provato con vi in ​​modalità binaria (vi -b) ma mostra un'uscita quasi illeggibile – helado

+0

Vedere prima il mio aggiornamento. Se la tua chiave privata * è * qualcosa che puoi condividere con noi (nel qual caso non è più "privato"), potresti generare un dump esadecimale usando 'od -x'. Se vuoi mantenerlo privato, probabilmente avrai bisogno di contattare l'origine della chiave per maggiori informazioni. – larsks

2

I miei due centesimi: sono imbattuto lo stesso messaggio di errore nel RHEL7.3 durante l'esecuzione del comando openssl con certificato della CA principale. Il motivo è che, durante il download del certificato dal server AD, la codifica è stata selezionata come DER anziché Base64.Una volta che la versione corretta di codifica è stato selezionato per il nuovo certificato di download, l'errore è stato risolto

Spero che questo aiuti per i nuovi utenti :-)

Problemi correlati