Quelqu'un peut-il me dire comment faire 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.
J'ai pu convertir pem en crt en utilisant ceci:
openssl x509 -outform der -in your-cert.pem -out your-cert.crt
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
Conversion d'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
You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
Conversion d'un fichier de certificat PEM et d'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 Convert PEM
Conversion PEM en DER
openssl x509 -outform der -in certificate.pem -out certificate.der
Convertir de PEM à P7B
openssl crl2pkcs7 -nocrl -certfile certificate.cer -out certificate.p7b -certfile CACert.cer
Conversion de PEM en PFX
openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt
OpenSSL Convert DER
Conversion DER en PEM
openssl x509 -inform der -in certificate.cer -out certificate.pem
OpenSSL Convert P7B
Convertir de P7B à 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 Convert PFX
Conversion de PFX en PEM
openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
Générer des clés RSA par OpenSSL
Si vous utilisez OpenSSL sur la ligne de commande, vous devez d’abord générer les clés publique et privée. Protégez ce fichier par un mot de passe à l’aide de l’argument -passout. Cet argument peut prendre différentes formes. Consultez la documentation OpenSSL à ce sujet.
openssl genrsa -out private.pem 1024
Cela crée un fichier de clé appelé private.pem qui utilise 1024 bits. Ce fichier contient les clés publique et privée. Vous devez donc extraire la clé publique de ce fichier:
openssl rsa -in private.pem -out public.pem -outform PEM -pubout
or
openssl rsa -in private.pem -pubout > public.pem
or
openssl rsa -in private.pem -pubout -out public.pem
Vous aurez maintenant public.pem contenant uniquement votre clé publique. Vous pourrez le partager librement avec des tiers. Vous pouvez tout tester en cryptant vous-même quelque chose en utilisant votre clé publique, puis en le déchiffrant en utilisant votre clé privée. Nous avons d’abord besoin d’un peu de données pour chiffrer:
Exemple de fichier:
echo 'too many secrets' > file.txt
Vous avez maintenant des données dans le fichier file.txt. Cryptons-les à l'aide d'OpenSSL et de la clé publique:
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.ssl
Cela crée une version chiffrée de file.txt en l’appelant fichier.ssl. Si vous regardez ce fichier, c’est juste de la malbouffe binaire, rien de très utile pour qui que ce soit. 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 allez maintenant avoir un fichier non crypté dans decrypted.txt:
cat decrypted.txt
|output -> too many secrets
Options RSA TOOLS dans OpenSSL
NOM
rSA - Outil de traitement de clé RSA
SYNOPSIS
openssl rsa [-help] [-inform PEM | NET | DER] [-outform PEM | NET | DER] [-in nomfichier] [-passin arg] [-out nomfichier] [-passout arg] [-aes128] [- aes192] [-aes256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-text] [-noout] [-modulus] [-check] [-pubin] [-pubout] [-RSAPublicKey_in] [-RSAPublicKey_out] [id-moteur]
DESCRIPTION
La commande rsa traite les clés RSA. Ils peuvent être convertis entre différentes formes et leurs composants imprimés. Notez que cette commande utilise le format traditionnel compatible SSLeay pour le chiffrement à clé privée: les applications les plus récentes doivent utiliser le format plus sécurisé PKCS # 8 à l'aide de l'utilitaire pkcs8.
OPTIONS DE COMMANDE
-help
Imprimez 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 RSAPrivateKey ou SubjectPublicKeyInfo de PKCS # 1. Le format PEM est le format par défaut: il se compose du format DER codé en base64 avec des lignes d’en-tête et de pied de page supplémentaires. Lors de la saisie, les clés privées au format PKCS # 8 sont également acceptées. Le format NET est un format 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 à partir duquel lire une clé ou une 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 de mot de passe du fichier d'entrée. Pour plus d'informations sur le format de arg, voir la section Arguments PASS PHRASE dans openssl.
-out filename
Ceci spécifie le nom du fichier de sortie sur lequel écrire une clé ou une sortie standard si cette option n'est pas spécifiée. Si des options de chiffrement sont définies, une phrase de passe sera demandée. Le nom de fichier en sortie ne doit pas être identique à celui en entrée.
-passout password
la source du mot de passe du fichier de sortie. Pour plus d'informations sur le format de arg, voir la section Arguments PASS PHRASE 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 brut. Cela signifie que l'utilisation de l'utilitaire rsa pour lire une clé chiffrée sans option de chiffrement peut être utilisée pour supprimer la phrase secrète d'une clé ou en définissant les options de chiffrement qu'il peut être utilisé pour ajouter ou modifier la phrase secrète. Ces options ne peuvent être utilisées qu'avec des fichiers de sortie au format PEM.
-text
imprime les divers composants de clé publique ou privée en texte brut en plus de la version codée.
-noout
cette option empêche la sortie de la version codée de la clé.
-modulus
cette option affiche la valeur du module 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 dans le fichier d'entrée: avec cette option, une clé publique est lue à la place.
-pubout
par défaut, une clé privée est sortie: avec cette option, une clé publique sera sortie à la place. Cette option est automatiquement définie 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
la spécification d'un moteur (par sa chaîne d'identifiant unique) fera que 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 comme moteur 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-----
-----END RSA PRIVATE KEY-----
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 formulaire NET est un format compatible avec les anciens serveurs Netscape et les fichiers Microsoft IIS .key. Il utilise le codage RC4 non salé. Ce n'est pas très sécurisé et ne devrait 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 "clé privée", puis remontez à 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-les comme entrée de l'utilitaire rsa avec l'option -inform NET.
EXEMPLES
Pour supprimer la phrase secrète d'une clé privée RSA:
openssl rsa -in key.pem -out keyout.pem
Pour chiffrer une clé privée à l'aide de 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 une sortie standard:
openssl rsa -in key.pem -text -noout
Pour sortir simplement la partie publique d'une clé privée:
openssl rsa -in key.pem -pubout -out pubkey.pem
Sort 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