web-dev-qa-db-fra.com

Impossible d'obtenir une clé privée avec openssl (pas de ligne de départ: pem_lib.c: 703: en attente: TOUTE CLÉ PRIVÉE)

J'ai un fichier .key, quand je le fais

openssl rsa -text -in file.key

Je reçois

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

J'ai aussi un fichier .cer et quand je le fais

openssl x509 -text -in file.cer

Je reçois

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

Mais si comme indiqué ici je lance la commande comme:

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

Je reçois

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

Mais cela ne semble pas fonctionner avec la clé, parce que quand je cours

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

Je reçois

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

Comment puis-je obtenir la clé privée et son certificat?

23
helado

Il semble que vous ayez un certificat au format DER au lieu de PEM. C’est pourquoi il fonctionne correctement lorsque vous fournissez le -inform PEM argument de ligne de commande (qui indique à openssl le format d'entrée attendu).

Il est probable que votre clé privée utilise le même encodage. Il semble que le openssl rsa La commande accepte également un -inform argument, alors essayez:

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

Un fichier encodé PEM est un encodage en texte brut ressemblant à ceci:

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

Bien que DER soit un format de codage binaire.

Mise à jour

Parfois, les clés sont distribuées au format PKCS # 8 (qui peut être codé PEM ou DER). Essayez ceci et voyez ce que vous obtenez:

openssl pkcs8 -in file.key -inform der
11
larsks

J'ai rencontré l'erreur 'Expecting: ANY PRIVATE KEY' lorsque j'utilise openssl sous Windows (Ubuntu Bash et Git Bash avaient le même problème).

Le problème était dû au fait que j'avais enregistré les fichiers de clé et de certificat dans le Bloc-notes en utilisant UTF8. Réenregistrer les deux fichiers au format ANSI a résolu le problème.

11
Aaron Queenan

Sur mon exécution de openssl pkcs12 -export -out cacert.pkcs12 -in testca/cacert.pem, J'ai reçu le message suivant:

impossible de charger la clé privée 140707250050712: erreur: 0906D06C: routines PEM: PEM_read_bio: aucune ligne de départ: pem_lib.c: 701: En attente: TOUTE CLÉ PRIVÉE`

Vous avez résolu ce problème en fournissant le fichier de clé avec la commande. Le commutateur est -inkey inkeyfile.pem

2
James Jithin

Mes deux cents: rencontrés le même message d'erreur dans RHEL7.3 lors de l'exécution de la commande openssl avec un certificat d'autorité de certification racine. La raison étant, lors du téléchargement du certificat depuis le serveur AD, Encoding a été sélectionné en tant que DER au lieu de Base64. Une fois que la version appropriée du codage a été sélectionnée pour le téléchargement du nouveau certificat, l'erreur a été résolue.

J'espère que cela aidera les nouveaux utilisateurs :-)

1
Arun Bhosale