Quelqu'un peut-il me dire la bonne façon/commande pour extraire/convertir les fichiers de certificat .crt
et de clé privée .key
à partir d'un fichier .pem
? Je viens de lire qu'ils sont interchangeables, mais pas comment.
Conversion à l'aide d'OpenSSL Ces commandes vous permettent de convertir des certificats et des clés dans différents formats afin de les rendre compatibles avec des types de serveurs ou de logiciels spécifiques.
Convertir un fichier DER (.crt .cer .der) en PEM openssl x509 -inform der -in certificate.cer -out certificate.pem
Convertir un fichier PEM en DER openssl x509 -outform der -in certificate.pem -out certificate.der
Convertir un fichier PKCS#12 (.pfx .p12) contenant une clé privée et des certificats en PEM openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes Vous pouvez ajouter -nocerts pour ne sortir que la clé privée ou ajouter -nokeys pour ne sortir que les certificats.
Convertir un fichier de certificat PEM et une clé privée en PKCS#12 (.pfx .p12) openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
Convertir PEM en CRT (fichier .CRT) openssl x509 -outform der -in certificate.pem -out certificate.crt OpenSSL Convertir PEM
Convertir PEM en DER openssl x509 -outform der -in certificate.pem -out certificate.der
Convertir PEM en P7B openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
Convertir PEM en PFX openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt **Conversion DER par OpenSSL
Convertir DER en PEM openssl x509 -inform der -in certificate.cer -out certificate.pem OpenSSL Convertir P7B
Convertissez P7B en PEM openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
Convertir P7B en PFX openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer openssl pkcs12 -export -in certificate.cer -inkey privateKey.key -out certificate.pfx -certfile CACert.cer OpenSSL Convertir PFX (en anglais)
Convertir PFX en PEM openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes Générer des clés rsa par OpenSSL.
En utilisant OpenSSL en ligne de commande, vous devez d'abord générer une clé publique et une clé privée, vous devez protéger ce fichier par un mot de passe en utilisant l'argument -passout, il y a beaucoup de formes différentes que cet argument peut prendre donc consultez la documentation OpenSSL à ce sujet. openssl genrsa -out private.pem 1024
Ceci crée un fichier de clé appelé private.pem qui utilise 1024 bits. Ce fichier contient à la fois la clé privée et la clé publique, vous devez donc extraire la clé publique de ce fichier : openssl rsa -in private.pem -out public.pem -outform PEM -pubout ou
openssl rsa -in private.pem -pubout > public.pem
ou
openssl rsa -in private.pem -pubout -out public.pem
Vous aurez maintenant public.pem contenant seulement votre clé publique, vous pouvez librement la partager avec des tiers. Vous pouvez tester tout cela en cryptant quelque chose vous-même en utilisant votre clé publique et en décryptant ensuite en utilisant votre clé privée, d'abord nous avons besoin d'un peu de données à crypter :
Exemple de fichier : echo 'too many secrets' ; > file.txt
Vous avez maintenant des données dans file.txt, chiffrons-les en utilisant OpenSSL et la clé publique : openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Cela crée une version cryptée de fichier.txt en l'appelant fichier.ssl. si vous regardez ce fichier, c'est juste un déchet binaire, rien de très utile pour personne. Maintenant vous pouvez le décrypter en utilisant la clé privée : openssl rsautl -decrypt -inkey private.pem -in file.ssl -out decrypted.txt
Vous aurez maintenant un fichier non crypté dans decrypted.txt : cat decrypted.txt |output -> trop de secrets Options RSA TOOLS dans OpenSSL.
NOM
rsa - Outil de traitement des clés RSA
SYNOPSIS
openssl rsa [-help] [-inform PEM|NET|DER] [-outform PEM|NET|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [-engine id] [description].
DESCRIPTION
La commande rsa traite les clés RSA. Elles peuvent être converties sous différentes formes et leurs composants peuvent être imprimés. Notez que cette commande utilise le format traditionnel compatible SSLeay pour le chiffrement des clés privées : les applications plus récentes doivent utiliser le format PKCS#8, plus sûr, à l'aide de l'utilitaire pkcs8.
OPTIONS DE LA COMMANDE** -help
Affiche un message d'utilisation. -inform DER|NET|PEM Ceci spécifie le format d'entrée. L'option DER utilise une forme codée ASN1 DER compatible avec le format PKCS#1 RSAPrivateKey ou SubjectPublicKeyInfo. La forme PEM est le format par défaut : elle consiste en un format DER encodé base64 avec des lignes d'en-tête et de pied de page supplémentaires. En entrée, les clés privées au format PKCS#8 sont également acceptées. La forme NET est un format est décrit dans la section NOTES. -outform DER|NET|PEM Ceci spécifie le format de sortie, les options ont la même signification que l'option -inform. -in filename Ceci spécifie le nom du fichier d'entrée pour lire une clé ou l'entrée standard si cette option n'est pas spécifiée. Si la clé est cryptée, une phrase de passe sera demandée. -passin arg la source du mot de passe du fichier d'entrée. Pour plus d'informations sur le format de arg voir la section PASS PHRASE ARGUMENTS dans openssl. -out filename Ceci spécifie le nom du fichier de sortie pour écrire une clé ou la sortie standard si cette option n'est pas spécifiée. Si des options de cryptage sont définies, une phrase de passe sera demandée. Le nom du fichier de sortie ne doit pas être le même que celui du fichier d'entrée. -passout mot de passe la source du mot de passe du fichier de sortie. Pour plus d'informations sur le format d'arg voir la section PASS PHRASE ARGUMENTS dans openssl. -aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea Ces options chiffrent la clé privée avec le chiffrement spécifié avant de la sortir. Une phrase de passe est demandée. Si aucune de ces options n'est spécifiée, la clé est écrite en texte clair. Cela signifie que l'utilisation de l'utilitaire rsa pour lire une clé chiffrée sans option de chiffrement peut être utilisé pour supprimer la phrase de passe d'une clé, ou en définissant les options de chiffrement, il peut être utilisé pour ajouter ou modifier la phrase de passe. Ces options ne peuvent être utilisées qu'avec des fichiers de sortie au format PEM. -text affiche les différents composants de la clé publique ou privée en texte clair en plus de la version encodée. -noout cette option empêche la sortie de la version encodée de la clé. -modulus cette option permet d'imprimer la valeur du modulus de la clé. -check cette option vérifie la cohérence d'une clé privée RSA. -pubin par défaut une clé privée est lue depuis le fichier d'entrée : avec cette option une clé publique est lue à la place. -pubout par défaut, une clé privée est produite : avec cette option, une clé publique sera produite à la place. Cette option est automatiquement activée si l'entrée est une clé publique. -RSAPublicKey_in, -RSAPublicKey_out comme -pubin et -pubout sauf que le format RSAPublicKey est utilisé à la place. -engine id en spécifiant un moteur (par sa chaîne d'identification unique), rsa tentera d'obtenir une référence fonctionnelle au moteur spécifié, l'initialisant ainsi si nécessaire. Le moteur sera alors défini par défaut pour tous les algorithmes disponibles.
NOTES Le format de clé privée PEM utilise les lignes d'en-tête et de pied de page : -----BEGIN RSA PRIVATE KEY----- -----FIN CLÉ PRIVÉE RSA----- Le format de clé publique PEM utilise les lignes d'en-tête et de pied de page : -----BEGIN PUBLIC KEY----- -----END PUBLIC KEY----- Le format PEM RSAPublicKey utilise les lignes d'en-tête et de pied de page : -----BEGIN RSA PUBLIC KEY----- -----END RSA PUBLIC KEY----- Le format NET est compatible avec les anciens serveurs Netscape et les fichiers .key de Microsoft IIS. Il utilise le format RC4 non salé pour son cryptage. Il n'est pas très sûr et ne doit donc être utilisé que si nécessaire. Certaines versions plus récentes de IIS contiennent des données supplémentaires dans les fichiers .key exportés. Pour les utiliser avec l'utilitaire, affichez le fichier avec un éditeur binaire et recherchez la chaîne "private-key" ;, puis remontez jusqu'à la séquence d'octets 0x30, 0x82 (il s'agit d'une SÉQUENCE ASN1). Copiez toutes les données à partir de ce point dans un autre fichier et utilisez-le comme entrée de l'utilitaire rsa avec l'option -inform NET. EXEMPLES Pour supprimer la phrase de passe sur une clé privée RSA : openssl rsa -in key.pem -out keyout.pem Pour crypter une clé privée en utilisant triple DES : openssl rsa -in key.pem -des3 -out keyout.pem Pour convertir une clé privée du format PEM au format DER : openssl rsa -in key.pem -outform DER -out keyout.der Pour imprimer les composants d'une clé privée sur la sortie standard : openssl rsa -in key.pem -text -noout Pour sortir uniquement la partie publique d'une clé privée : openssl rsa -in key.pem -pubout -out pubkey.pem Sortir la partie publique d'une clé privée au format RSAPublicKey : openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
Pour extraire la clé et le certificat d'un fichier pem :
openssl pkey -in foo.pem -out foo.key
Une autre méthode pour extraire la clé...
openssl rsa -in foo.pem -out foo.key
openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert
openssl x509 -in foo.pem -outform DER -out first-cert.der