Validation de l'objectif du certificat

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

<ph type="x-smartling-placeholder">

Ce document explique comment valider l'objectif d'un certificat avant de l'importer à un keystore ou à un truststore. Le processus s'appuie sur OpenSSL pour la validation et s'applique dans tout environnement où OpenSSL est disponible.

Les certificats TLS sont généralement émis avec un ou plusieurs objectifs pour lesquels ils peuvent être utilisés. En général, cela permet de restreindre le nombre d'opérations pour lesquelles une clé publique contenait du certificat peuvent être utilisés. L'objectif du certificat est disponible dans extensions de certificat:

  • Utilisation de la clé
  • Utilisation étendue de la clé

Utilisation de la clé

L'extension d'utilisation de la clé définit l'objectif (par exemple, chiffrement, signature ou signature de certificat) de la clé contenue dans le certificat. Si la clé publique est utilisée pour authentification d'entité, l'extension de certificat doit avoir l'utilisation de la clé Signature numérique :

Les différentes extensions d'utilisation de clés disponibles pour un certificat TLS créé à l'aide de la de l'autorité de certification se déroule comme suit:

  • Signature numérique.
  • Non-répudiation
  • Chiffrement de clé
  • Chiffrement des données
  • Clé-contrat
  • Signature de certificat
  • Signature LRC
  • Chiffrer seulement
  • Déchiffrer seulement

Pour en savoir plus sur ces extensions d'utilisation des clés, consultez RFC 5280, Utilisation de la clé.

Utilisation étendue de la clé

Cette extension indique un ou plusieurs objectifs pour lesquels la clé publique certifiée peut être utilisée, en plus ou à la place des objectifs de base indiqués dans l'extension d'utilisation des clés. Dans général, cette extension n'apparaîtra que dans les certificats d'entité de fin.

Voici quelques extensions d'utilisation étendue des clés courantes:

  • TLS Web server authentication
  • TLS Web client authentication
  • anyExtendedKeyUsage

Une clé étendue peut être critique ou non critique.

  • Si l'extension est critique, le certificat ne doit être utilisé que pour la un ou plusieurs buts. Si le certificat est utilisé à d'autres fins, il ne respecte pas les la stratégie de l’AC.
  • Si l'extension n'est pas critique, cela indique la ou les finalités prévues de la clé est fournie à titre informatif et n'implique pas que l'autorité de certification limite son utilisation au l'objectif indiqué. Toutefois, les applications qui utilisent des certificats peuvent exiger qu'un utilisateur donné l’objectif doit être indiqué afin que le certificat soit acceptable.

Si un certificat contient à la fois le champ d'utilisation de la clé et le champ d'utilisation étendue des clés en tant que critique, alors les deux champs doivent être traités indépendamment et le certificat peut être utilisé uniquement à des fins satisfaisant les deux valeurs d'utilisation de clés. Toutefois, s'il n'y a pas pouvant satisfaire les deux valeurs d'utilisation des clés, le certificat ne doit pas être utilisé quel que soit le but.

Lorsque vous obtenez un certificat, assurez-vous que l'utilisation des clés est définie pour satisfaire les exigences pour les certificats client ou serveur sans lesquels le handshake TLS échouerait.

Purpose Utilisation de la clé

(obligatoire)

Utilisation étendue des clés

(facultatif)

Certificat d'entité du serveur utilisé dans le keystore de l'hôte virtuel Apigee Edge
  • Signature numérique.
  • Chiffrement de clé ou accord de clé
Authentification du serveur Web TLS
Certificat d'entité client utilisé dans le truststore de l'hôte virtuel Apigee Edge
  • Signature numérique ou contrat de clé
Authentification du client Web TLS
Certificat d'entité du serveur utilisé dans le truststore du serveur cible Apigee Edge
  • Signature numérique.
  • Chiffrement de clé ou accord de clé
Authentification du serveur Web TLS
Certificat d'entité client utilisé dans le keystore du serveur cible Apigee Edge
  • Signature numérique ou contrat de clé
Authentification du client Web TLS
Certificats intermédiaires et racine
  • Symbole de certificat
  • Signe de la liste de révocation de certificats (LRC)

Avant de commencer

Avant de suivre les étapes décrites dans ce document, assurez-vous de bien comprendre les points suivants:

  • Si vous ne connaissez pas les chaînes de certificats, consultez la page Chaîne de confiance.
  • Si vous ne connaissez pas la bibliothèque OpenSSL, consultez OpenSSL
  • Si vous souhaitez en savoir plus sur les extensions d'utilisation des clés et l'utilisation étendue des clés, consultez RFC5280
  • Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, installez la dernière version la version du client OpenSSL ;
  • Assurez-vous que les certificats sont au format PEM. Si ce n'est pas le cas, <ph type="x-smartling-placeholder"></ph> convertir les certificats au format PEM.

Valider l'objectif du certificat

Cette section décrit les étapes à suivre pour valider l'objectif du certificat.

  1. Connectez-vous au serveur sur lequel OpenSSL existe.
  2. Pour obtenir l'utilisation des clés d'un certificat, exécutez la commande OpenSSL suivante:
    openssl x509 -noout -ext keyUsage < certificate

    certificate est le nom du certificat.

    Exemple de résultat

    openssl x509 -noout -ext keyUsage < entity.pem
    X509v3 Key Usage: critical
        Digital Signature, Key Encipherment
    
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  3. Si l'utilisation d'une clé est obligatoire, elle sera définie comme essentielle, comme suit:
    openssl x509 -noout -ext keyUsage < intermediate.pem
    X509v3 Key Usage: critical
        Certificate Sign, CRL Sign
  4. Exécutez la commande suivante pour obtenir l'utilisation étendue des clés pour un certificat. Si l'utilisation étendue des clés n'est pas définie comme critique, il s'agit d'une recommandation et et non comme un mandat.
    openssl x509 -noout -ext extendedKeyUsage < certificate

    certificate est le nom du certificat.

    Exemple de résultat

    openssl x509 -noout -ext extendedKeyUsage < entity.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
    
    openssl x509 -noout -ext extendedKeyUsage < intermediate.pem
    X509v3 Extended Key Usage:
        TLS Web Server Authentication, TLS Web Client Authentication
<ph type="x-smartling-placeholder">