Convertir des certificats dans un format compatible

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Ce document explique comment convertir le certificat TLS et la clé privée associée aux formats PEM ou PFX (PKCS #12).

Apigee Edge ne permet de stocker que des certificats au format PEM ou PFX dans les keystores et les truststores. Les étapes utilisées pour convertir des certificats de n'importe quel format existant au format PEM ou PFX reposent sur la boîte à outils OpenSSL et sont applicables à tout environnement où OpenSSL est disponible.

Avant de commencer

Avant de suivre les étapes de ce document, assurez-vous de bien comprendre les sujets suivants :

  • Si vous ne connaissez pas le format PEM ou PFX, consultez la section À propos de TLS/SSL.
  • Si vous ne connaissez pas les formats de certificats, consultez la section Formats de certificats SSL.
  • Si vous ne connaissez pas la bibliothèque OpenSSL, consultez OpenSSL.
  • Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, installez ou mettez à jour la dernière version du client OpenSSL.

Convertir un certificat au format DER au format PEM

Cette section explique comment convertir un certificat et la clé privée associée du format DER au format PEM.

  1. Transférez le fichier contenant la chaîne de certificats complète (certificate.der) et la clé privée associée (private_key.der) que vous souhaitez convertir au format PEM sur une machine sur laquelle OpenSSL est installé à l'aide de scp, sftp ou tout autre utilitaire.

    Par exemple, utilisez la commande scp pour transférer le fichier vers le répertoire /tmp sur le serveur contenant OpenSSL comme suit :

    scp certificate.der servername:/tmp
    scp private_key.der servername:/tmp

    servername est le nom du serveur contenant OpenSSL.

  2. Connectez-vous à la machine sur laquelle OpenSSL est installé.
  3. À partir du répertoire dans lequel se trouvent les certificats, exécutez la commande suivante pour convertir le certificat et la clé privée associée du format DER au format PEM :
    openssl x509 -inform DER -in certificate.der -outform PEM -out certificate.pem
    openssl rsa -inform DER -in private_key.der -outform PEM -out private.key
  4. Vérifiez que le certificat est converti au format PEM.

Convertir un certificat du format P7B au format PEM

Cette section explique comment convertir des certificats au format P7B au format PEM.

  1. Transférez le fichier contenant la chaîne de certificats complète (certificate.p7b) que vous souhaitez convertir au format PEM sur une machine sur laquelle OpenSSL est installé à l'aide de scp, sftp ou de tout autre utilitaire.

    Par exemple, utilisez la commande scp pour transférer le fichier vers le répertoire /tmp sur le serveur contenant OpenSSL comme suit :

    scp certificate.p7b servername:/tmp

    servername est le nom du serveur contenant OpenSSL.

  2. Connectez-vous à la machine sur laquelle OpenSSL est installé.
  3. Dans le répertoire où se trouvent les certificats, exécutez la commande suivante pour convertir le certificat du format P7B au format PEM :
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.pem
  4. Vérifiez que le certificat est converti au format PEM.

Convertir le certificat du format PFX au format PEM

Cette section explique comment convertir des certificats TLS du format PFX au format PEM.

Lorsque vous convertissez un fichier PFX au format PEM, OpenSSL place tous les certificats et la clé privée dans un seul fichier. Vous devez ouvrir le fichier dans un éditeur de texte, puis copier chaque certificat et chaque clé privée (y compris les instructions BEGIN/END) dans des fichiers texte individuels et les enregistrer en tant que certificate.pfx, Intermediate.pfx (le cas échéant), CACert.pfx et privateKey.key, respectivement.

Apigee accepte le format PFX/PKCS #12. Toutefois, le format PEM est pratique pour de nombreuses raisons, y compris la validation.

  1. Transférez les certificats et la clé privée (certificate.pfx, Intermediate.pfx, CACert.pfx et privateKey.key) que vous souhaitez convertir au format PEM vers une machine sur laquelle OpenSSL est installé à l'aide de scp, sftp ou de tout autre utilitaire.

    Par exemple, utilisez la commande scp pour transférer le fichier vers le répertoire /tmp sur le serveur contenant OpenSSL comme suit :

    scp certificate.pfx servername:/tmp

    servername est le nom du serveur contenant OpenSSL.

  2. Connectez-vous à la machine sur laquelle OpenSSL est installé.
  3. Dans le répertoire où se trouvent les certificats, exécutez la commande suivante pour convertir le certificat du format P7B au format PEM :
    openssl pkcs12 -in certificate.pfx -out certificate.pem -nodes
  4. Vérifiez que le certificat est converti au format PEM.

Convertir un certificat du format P7B au format PFX

Cette section explique comment convertir les certificats TLS du format P7B au format PFX.

Pour effectuer la conversion au format PFX, vous devez également obtenir la clé privée.

  1. Transférez le certificat (certificate.p7b) que vous souhaitez convertir au format PFX vers une machine sur laquelle OpenSSL est installé à l'aide de scp, sftp ou de tout autre utilitaire.

    Par exemple, utilisez la commande scp pour transférer le fichier vers le répertoire /tmp du serveur contenant OpenSSL comme suit :

    scp certificate.p7b servername:/tmp
    scp private_key.key servername:/tmp

    servername est le nom du serveur contenant OpenSSL.

  2. Connectez-vous à la machine sur laquelle OpenSSL est installé.
  3. À partir du répertoire où se trouvent les certificats, exécutez les commandes suivantes pour convertir le certificat au format P7B au format PFX et exporter le certificat d'entité et le certificat CA intermédiaire dans des fichiers distincts:
    openssl pkcs7 -print_certs -in certificate.p7b -out certificate.cer
    
    openssl pkcs12 -export -in certificate.cer -inkey private_key.key -out certificate.pfx -certfile CACert.cer

Vérifier que le certificat est au format PEM

Cette section explique comment vérifier que le certificat est au format PEM.

  1. Pour afficher le certificat au format PEM, exécutez la commande suivante :
    openssl x509 -in certificate.pem -text -noout
  2. Si vous pouvez afficher le contenu du certificat au format lisible par l'humain sans erreur, vous pouvez confirmer qu'il est au format PEM.
  3. Si le certificat est au format autre, des erreurs telles que les suivantes s'affichent :
    unable to load certificate
    12626:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:647:Expecting: TRUSTED CERTIFICATE View DER encoded Certificate

Empaqueter des fichiers de clé PEM et de certificat dans PKCS12/PFX

  1. Assurez-vous que le fichier de clé privée est au format PEM. Pour le certificat, si vous disposez de fichiers PEM distincts pour votre chaîne, ouvrez chaque fichier dans un éditeur de texte et concaténez-les dans un seul fichier, comme illustré ci-dessous :
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    -----END CERTIFICATE-----
  2. Transférez les fichiers vers une machine où OpenSSL est installé à l'aide de scp, sftp ou de tout autre utilitaire :
    scp certificate.pem servername:/tmp
    scp private.key servername:/tmp
  3. Connectez-vous à la machine sur laquelle OpenSSL est installé.
  4. À partir du répertoire où se trouvent les fichiers, exécutez la commande suivante pour les empaqueter dans un fichier PKCS12 avec l'alias myalias. Lorsque vous y êtes invité, saisissez un mot de passe approprié :
    openssl pkcs12 -export -in certificate.pem -inkey private.key -out keystore.pfx -name myalias