Question Convertir .pem en .crt et .key


Quelqu'un peut-il me dire la bonne façon / commande pour extraire / convertir le certificat .crt et clé privée .key fichiers d'un .pem fichier? Je viens de lire qu'ils sont interchangeables, mais pas comment.


200
2017-12-05 21:30


origine


Réponses:


J'ai pu convertir pem en crt en utilisant ceci:

openssl x509 -outform der -in your-cert.pem -out your-cert.crt

310
2018-01-23 16:23



Conversion à l'aide d'OpenSSL

Ces commandes vous permettent de convertir des certificats et des clés en différents formats pour les rendre compatibles avec des types spécifiques de serveurs ou de logiciels.

  • 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
    
    You can add -nocerts to only output the private key or add -nokeys to only output the certificates.
    
  • 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 Convert PEM

  • Convertir PEM en DER

    openssl x509 -outform der -in certificate.pem -out certificate.der
    
  • Convertir PEM à 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
    

OpenSSL Convertir DER

  • Convertir DER en PEM

    openssl x509 -inform der -in certificate.cer -out certificate.pem
    

OpenSSL Convertir P7B

  • Convertir P7B en PEM

    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
  • Convertir de P7B à 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

  • Convertir de PFX à PEM

    openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
    

Générer des clés rsa par OpenSSL

  • En utilisant OpenSSL sur la ligne de commande, vous devez d'abord générer une clé publique et privée. Vous devez protéger ce fichier par mot de passe en utilisant 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 clé appelé private.pem qui utilise 1024 bits. Ce fichier contient à la fois les clés privées et publiques, vous devez donc extraire le fichier public 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 juste votre clé publique, vous pouvez le partager librement avec des tiers.   Vous pouvez tout tester en chiffrant simplement quelque chose vous-même en utilisant votre clé publique, puis en décryptant à l'aide de votre clé privée, d'abord nous avons besoin d'un peu de données à chiffrer:

  • Exemple de fichier:

    echo 'too many secrets' > file.txt
    
  • Vous avez maintenant des données dans fichier.txt, permet de le chiffrer 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 chiffrée de fichier.txt l'appelant fichier.ssl, si vous regardez ce fichier, il est juste junk binaire, rien de très utile pour n'importe qui. 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 chiffré dans decrypted.txt:

    cat decrypted.txt
    |output -> too many secrets
    

Options RSA TOOLS dans OpenSSL

  • PRÉNOM

    rsa - Outil de traitement de clé RSA

  • SYNOPSIS

    openssl rsa [-help] [-inform PEM | NET | DER] [-outform PEM | NET | DER] [-en 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] [-engine id]

  • LA 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 compatible SSLeay traditionnel pour le cryptage de clé privée: les nouvelles applications doivent utiliser le format PKCS # 8 plus sécurisé à 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 un formulaire encodé ASN1 DER compatible avec le format PKCS # 1 RSAPrivateKey ou SubjectPublicKeyInfo. Le format PEM est le format par défaut: il se compose du format DER base64 codé avec des lignes d’en-tête et de pied de page supplémentaires. Les clés privées au format PKCS # 8 d'entrée sont également acceptées. Le formulaire NET est un format décrit dans la section NOTES.

    -outform DER|NET|PEM
    

    Cela spécifie le format de sortie, les options ont la même signification que l'option -inform.

    -in filename
    

    Cela spécifie le nom de fichier d'entrée pour 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 du mot de passe du fichier d'entrée. Pour plus d'informations sur le format de arg, consultez la section PASS PHRASE ARGUMENTS dans openssl.

    -out filename
    

    Cela spécifie le nom de fichier de sortie pour écrire une clé ou une 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 de fichier de sortie ne doit pas être le même que le nom de fichier d'entrée.

    -passout password
    

    la source du mot de passe du fichier de sortie. Pour plus d'informations sur le format de arg, consultez 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 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 de passe d'une clé ou définir les options de chiffrement à utiliser pour ajouter ou modifier la phrase secrète. Ces options ne peuvent être utilisées qu'avec les fichiers de sortie au format PEM.

    -text
    

    imprime les différents composants clés publics ou privés 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 imprime 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
    

    Si vous spécifiez un moteur (par sa chaîne d’identifiant 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.

  • REMARQUES

    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 .key Microsoft IIS, qui utilise un code RC4 non salé pour son chiffrement. Il n'est pas très sécurisé et ne devrait donc être utilisé que lorsque cela est nécessaire.

    Certaines versions plus récentes d'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 retrouvez la séquence d'octets 0x30, 0x82 (il s'agit d'une SEQUENCE 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 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 à la 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
    

    Affiche la partie publique d'une clé privée au format RSAPublicKey:

      openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
    

219
2017-07-16 06:59



Pour extraire la clé et le cert d'un fichier pem:

Extraire la clé

openssl pkey -in foo.pem -out foo.key

Une autre méthode d'extraction de la clé ...

openssl rsa -in foo.pem -out foo.key

Extrait tous les certs, y compris la chaîne CA

openssl crl2pkcs7 -nocrl -certfile foo.pem | openssl pkcs7 -print_certs -out foo.cert

Extraire le premier certificat textuellement comme DER

openssl x509 -in foo.pem -outform DER -out first-cert.der

8
2018-02-17 00:46