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?
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
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.
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
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 :-)