Validation de l'objectif du certificat

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Ce document explique comment valider l'objectif d'un certificat avant de l'importer dans un keystore ou un Truststore. Le processus s'appuie sur OpenSSL pour la validation et est applicable à tous les environnements dans lesquels OpenSSL est disponible.

Les certificats TLS sont généralement émis pour un ou plusieurs objectifs. En règle générale, cela permet de limiter le nombre d'opérations pour lesquelles une clé publique contenue dans le certificat peut être utilisée. L'objectif du certificat est disponible dans les extensions de certificat suivantes:

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

Utilisation de la clé

L'extension d'utilisation de 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 l'authentification d'entité, l'extension de certificat doit utiliser la clé Signature numérique.

Les différentes extensions d'utilisation de clés disponibles pour un certificat TLS créé à l'aide du processus de l'autorité de certification sont les suivantes:

  • 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 RFC5280, Utilisation des clés.

Utilisation étendue de la clé

Cette extension indique une ou plusieurs finalités pour lesquelles la clé publique certifiée peut être utilisée, en plus ou à la place des finalités de base indiquées dans l'extension d'utilisation de la clé. En général, cette extension n'apparaît que dans les certificats d'entité de fin.

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

  • 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é qu'aux fins indiquées. Si le certificat est utilisé à d'autres fins, il enfreint les règles de l'autorité de certification.
  • Si l'extension est non critique, cela indique que le but précis de la clé est informatif et n'implique pas que l'autorité de certification limite l'utilisation de la clé au but indiqué. Toutefois, les applications qui utilisent des certificats peuvent nécessiter la mention d'une fin particulière pour que les certificats soient acceptables.

Si un certificat affiche à la fois le champ d'utilisation de clé et le champ d'utilisation étendue de la clé comme critiques, les deux champs doivent être traités indépendamment. Le certificat ne peut être utilisé que dans un but répondant aux deux valeurs d'utilisation des clés. Toutefois, si aucun objectif ne peut satisfaire les deux valeurs d'utilisation de clés, le certificat ne doit être utilisé à aucune fin.

Lorsque vous obtenez un certificat, assurez-vous que l'utilisation appropriée des clés est définie pour répondre aux exigences des certificats client ou serveur sans lesquelles le handshake TLS échouerait.

Purpose Utilisation des clés

(obligatoire)

Utilisation étendue des clés

(facultatif)

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

Avant de commencer

Avant de suivre la procédure décrite dans ce document, assurez-vous de bien comprendre les sujets suivants:

  • Si le concept de chaîne de certificat ne vous est pas familier, consultez la section Chaîne de confiance.
  • Si vous ne connaissez pas bien la bibliothèque OpenSSL, consultez la page OpenSSL.
  • Si vous souhaitez en savoir plus sur les extensions d'utilisation des clés et l'utilisation étendue des clés, consultez le document RFC5280.
  • Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, installez ou mettez à jour la dernière version du client OpenSSL
  • Assurez-vous que les certificats sont au format PEM. Si ce n'est pas le cas, convertissez-les 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 de la clé 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 de la clé pour un certificat. Si l'utilisation étendue des clés n'est pas définie comme critique, il s'agit d'une recommandation et non d'une obligation.
    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