Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document sert de guide général pour la configuration des certificats IOS XE signés par une autorité de certification tierce.
Ce document explique en détail comment importer une chaîne CA signée à plusieurs niveaux comme pour le périphérique servant de certificat d'identité (ID), ainsi que comment importer d'autres certificats tiers dans le but de valider le certificat.
NTP et Heure d'horloge DOIVENT être configurés lors de l'utilisation des fonctionnalités IOS PKI.
Si un administrateur ne configure pas NTP, vous pouvez rencontrer des problèmes avec un certificat généré avec une date/heure future/passée. Ce décalage dans la date ou l'heure peut entraîner des problèmes d'importation et d'autres problèmes en cours de route.
Exemple de configuration NTP :
ntp server 192.168.1.1
clock timezone EST -5
clock summer-time EDT recurring
- Routeur Cisco exécutant Cisco IOS® XE17.11.1a
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Notez que certaines fonctionnalités détaillées dans ce document peuvent ne pas être disponibles dans les versions antérieures d'IOS XE. Dans la mesure du possible, on a pris soin de documenter l'introduction ou la modification d'une commande ou d'une fonction.
Reportez-vous toujours à la documentation officielle des fonctionnalités PKI d'IOS XE pour une version donnée afin de comprendre les limitations ou les modifications qui peuvent être pertinentes pour votre version spécifique :
Exemples:
À un niveau élevé, un administrateur doit effectuer les actions suivantes lorsqu'il travaille avec des certificats IOS XE PKI :
Ces étapes sont détaillées dans les sections suivantes, regroupées par commandes requises pour l'action donnée.
De nombreux administrateurs ont entré cette commande pour activer Secure Socket Shell (SSH) sur un routeur ou dans le cadre d'un guide de configuration d'une fonctionnalité. Cependant, peu d'entre eux n'ont pas disséqué ce que la commande fait réellement.
Prenez par exemple les commandes ci-dessous :
crypto key generate rsa general-keys modulus 2048 label rsaKey exportable
crypto key generate ec keysize 521 exportable label ecKey
Disséquer ces commandes dans les parties spécifiques détaillera l'utilisation :
Exemples de configuration :
Router(config)# crypto key generate rsa general-keys modulus 2048 label rsaKey exportable The name for the keys will be: rsaKey % The key modulus size is 2048 bits % Generating 2048 bit RSA keys, keys will be exportable... [OK] (elapsed time was 1 seconds) Router(config)# crypto key generate ec keysize 521 exportable label ecKey The name for the keys will be: ecKey
Exemples de vérification :
Router# show crypto key mypubkey rsa rsaKey % Key pair was generated at: 10:21:42 EDT Apr 14 2023 Key name: rsaKey Key type: RSA KEYS 2048 bits Storage Device: not specified Usage: General Purpose Key Key is exportable. Redundancy enabled. Key Data: 30820122 300D0609 2A864886 F70D0101 01050003 82010F00 3082010A 02820101 [..truncated..] 9F020301 0001
Router# show crypto key mypubkey ec ecKey % Key pair was generated at: 10:03:05 EDT Apr 14 2023 Key name: ecKey Key type: EC KEYS p521 curve Storage Device: private-config Usage: Signature Key Key is exportable. Redundancy enabled. Key Data: 30819B30 1006072A 8648CE3D 02010605 2B810400 23038186 000401A2 A77FCD34 [..truncated..] 93FAC967 96ADA79E 4A245881 B2AD2F4A 279A362D F390A20F C06D5845 06DA
Les points de confiance sont un concept de type « dossier » pour le stockage et la gestion des certificats PKI dans IOS XE. (syntaxe de commande)
À un niveau élevé :
Remarque : les sections à venir pour crypto pki authenticate et crypto pki import et les sections ultérieures détaillant les exemples d'authentification/importation pour les certificats multiniveaux fourniront un contexte supplémentaire à ces quatre puces.
Diverses commandes peuvent être configurées pour les points de confiance. Ces commandes peuvent être utilisées pour influencer les valeurs dans une demande de signature de certificat (CSR) créée par le périphérique à l'aide de la commande crypto pki enroll sur un point de confiance.
Il existe de nombreuses commandes différentes pour un point de confiance (beaucoup trop nombreuses pour être détaillées dans ce document), mais certains exemples plus courants sont détaillés dans l'exemple de point de confiance et le tableau ci-dessous :
crypto pki trustpoint labTrustpoint enrollment terminal pem serial-number none fqdn none ip-address none subject-name cn=router.example.cisco.com subject-alt-name myrouter.example.cisco.com revocation-check none rsakeypair rsaKey hash sha256
Commande | Description |
crypto pki trustpoint labTrustpoint | Étiquette de configuration lisible par l'utilisateur pour ce point de confiance. Utilisé pour établir une liaison avec des fonctions ou des services dans des commandes ultérieures. |
enrollment terminal pem |
Détermine l'action que la commande crypto pki enroll va effectuer. Dans cet exemple, enrollment terminal pem indique que la demande de signature de certificat (CSR) sera envoyée au terminal dans un texte au format PEM Base64. D'autres options telles que enrollment selfsigned peuvent être utilisées pour créer un certificat auto-signé ou une URL d'inscription peuvent être configurées pour définir une URL HTTP et tirer parti du protocole SCEP (Simple Certificate Enrollment Protocol). Ces deux méthodes sortent du cadre de ce document. |
numéro de série none | Détermine si les périphériques série IOS XE seront ajoutés au CSR. Cela désactive également l'invite pendant la commande crypto pki enroll. |
fqdn none | Détermine si le nom de domaine complet (FQDN) sera ajouté au CSR. Cela désactive également l'invite pendant la commande crypto pki enroll. |
ip-address none | Détermine si l'adresse IP des périphériques IOS XE sera ajoutée au CSR. Cela désactive également l'invite pendant la commande crypto pki enroll. |
subject-name cn=router.example.cisco.com | Indique le format X500 qui sera ajouté au CSR. |
subject-alt-name myrouter.example.cisco.com | À partir de la version 17.9.1 d'IOS XE, une liste séparée par des virgules des valeurs de l'autre nom du sujet (SAN) peut être ajoutée au CSR. |
revocation-check none | Indique comment le périphérique IOS XE doit vérifier la validité du certificat. Des options telles que la liste de révocation de certificats (CRL), le protocole OCSP (Online Certificate Status Protocol) peuvent être utilisées si elles sont prises en charge par l'autorité de certification de votre choix. Cette option est principalement utilisée lorsque le point de confiance est utilisé par une autre fonctionnalité ou un autre service IOS XE configuré. L'état de révocation est également vérifié lorsqu'un certificat est authentifié avec un point de confiance. |
rsakeypair rsaKey | Indique à la commande d'utiliser la paire de clés RSA avec cette étiquette spécifique. Pour les certificats ECDSA, utilisez la commande "eckeypair ecKey" qui fait référence à l'étiquette de la clé EC |
hachage sha256 | Cette commande influence le type d'algorithme de hachage à utiliser. Les options sont SHA1, SHA256, SHA384 et SHA512 |
La commande crypto pki enroll est utilisée pour déclencher la commande enrollment sur un point de confiance donné. (Syntaxe de commande)
Pour l'exemple trustpoint précédemment affiché, la commande crypto pki enroll labTrustpoint affichera la demande de signature de certificat (CSR) au terminal au format texte PEM Base64 comme indiqué dans l'exemple ci-dessous.
Cette demande de signature de certificat peut désormais être enregistrée dans un fichier texte ou copiée et collée à partir de la ligne de commande afin de fournir à toute autorité de certification tierce une validation et une signature.
Router(config)# crypto pki enroll labTrustpoint % Start certificate enrollment .. % The subject name in the certificate will include: cn=router.example.cisco.com % The fully-qualified domain name will not be included in the certificate Display Certificate Request to terminal? [yes/no]: yes Certificate Request follows: -----BEGIN CERTIFICATE REQUEST----- MIICrTCCAZUCAQAwIzEhMB8GA1UEAxMYcm91dGVyLmV4YW1wbGUuY2lzY28uY29t [..truncated..] mGvBGUpn+cDIdFcNVzn8LQk= -----END CERTIFICATE REQUEST----- ---End - This line not part of the certificate request---
La commande crypto pki authenticate est utilisée pour ajouter un certificat CA approuvé à un point de confiance donné. Chaque point de confiance peut être authentifié une seule fois. En d'autres termes, un point de confiance ne peut contenir qu'un seul certificat CA racine ou intermédiaire. L'exécution de la commande une deuxième fois et l'ajout d'un nouveau certificat remplaceront le premier certificat.
Lorsque la commande enrollment terminal pem est configurée, la commande crypto pki authenticate invite le routeur à télécharger un certificat au format PEM Base64 via l'interface de ligne de commande (CLI). (Syntaxe de commande)
Un administrateur peut authentifier un point de confiance afin d'ajouter les certificats racine et les certificats intermédiaires facultatifs dans une chaîne de certificats dans le but d'importer ultérieurement le certificat d'ID d'un périphérique.
Un administrateur peut également authentifier un point de confiance pour ajouter d'autres autorités de certification racine de confiance au périphérique IOS XE dans le but d'activer des relations de confiance avec des périphériques homologues pendant les échanges de protocole avec ce périphérique homologue.
Pour illustrer davantage, un périphérique homologue peut comporter une chaîne de certificats signée par « Root CA 1 ». Pour que la validation du certificat lors de la connexion de protocole entre le périphérique IOS XE et le périphérique homologue réussisse, un administrateur peut utiliser la commande crypto pki authenticate pour ajouter le certificat CA à un point de confiance sur le périphérique IOS XE.
L'élément principal à retenir : l'authentification des points de confiance à l'aide de crypto pki authenticate est toujours destinée à ajouter des certificats d'origine ou intermédiaires CA à un point de confiance ; pas à ajouter des certificats d'identité. Notez que ce concept est également appliqué à l'authentification des certificats auto-signés à partir d'un autre périphérique homologue.
L'exemple ci-dessous montre comment authentifier un point de confiance d'une version antérieure en utilisant la commande crypto pki authenticate :
Router(config)# crypto pki authenticate labTrustpoint Enter the base 64 encoded CA certificate. End with a blank line or the word "quit" on a line by itself -----BEGIN CERTIFICATE----- [..truncated..] -----END CERTIFICATE----- Certificate has the following attributes: Fingerprint MD5: C955FC74 7AABC184 D8A75DE7 3C9E7218 Fingerprint SHA1: 3A99FF61 1E9E6C7B D0E567A9 96D882F5 2279C534 % Do you accept this certificate? [yes/no]: yes Trustpoint CA certificate accepted. % Certificate successfully imported
Cette commande est utilisée pour importer le certificat d'identité (ID) dans un point de confiance. Un seul point de confiance ne peut contenir qu'un seul certificat d'ID et l'exécution d'une deuxième commande vous invite à remplacer le certificat importé précédemment. (Syntaxe de commande)
L'exemple ci-dessous montre comment importer un certificat d'identité dans l'exemple trustpoint à partir de plus tôt en utilisant la commande crypto pki import.
Router(config)# crypto pki import labTrustpoint certificate Enter the base 64 encoded certificate. End with a blank line or the word "quit" on a line by itself -----BEGIN CERTIFICATE----- [..truncated..] -----END CERTIFICATE----- % Router Certificate successfully imported
Un administrateur obtiendra une erreur s'il tente d'importer un certificat avant que le point de confiance n'ait authentifié le certificat d'autorité de certification utilisé pour signer directement ce certificat.
Router(config)# crypto pki import labTrustpoint certificate % You must authenticate the Certificate Authority before you can import the router's certificate.
Les certificats d'autorité de certification homologues sont ajoutés à IOS XE en utilisant la même méthode d'ajout de tout certificat d'autorité de certification. En d'autres termes, ils sont authentifiés par rapport à un point de confiance à l'aide de la commande crypto pki authenticate.
La commande ci-dessous montre comment créer un point de confiance et authentifier un certificat d'autorité de certification tierce homologue.
Router(config)# crypto pki trustpoint PEER-ROOT Router(ca-trustpoint)# enrollment terminal pem Router(ca-trustpoint)# revocation-check none
Router(ca-trustpoint)# crypto pki authenticate PEER-ROOT Enter the base 64 encoded CA certificate. End with a blank line or the word "quit" on a line by itself -----BEGIN CERTIFICATE----- [..truncated..] -----END CERTIFICATE----- Certificate has the following attributes: Fingerprint MD5: 62D1381E 3E03D06A 912BAC4D 247EEF17 Fingerprint SHA1: 3C97CBB4 491FC8D6 3D12B489 0C285481 64198EDB
% Do you accept this certificate? [yes/no]: yes
Trustpoint CA certificate accepted.
% Certificate successfully imported
Les exemples précédents expliquent en détail comment générer un CSR à l'aide de crypto pki enroll, authentifier le certificat d'autorité de certification racine à l'aide de crypto pki authenticate, puis importer le certificat d'identité à l'aide de crypto pki import.
Toutefois, lors de l'introduction de certificats intermédiaires, le processus diffère légèrement. Ne craignez rien, les mêmes concepts et commandes s'appliquent toujours ! La différence réside dans la manière dont les points de confiance qui détiennent les certificats sont présentés.
N’oubliez pas que chaque point de confiance ne peut contenir qu’un seul certificat CA racine ou intermédiaire. Ainsi, dans un exemple où nous avons une chaîne CA comme ci-dessous, il est impossible d'utiliser la commande crypto pki authenticate pour ajouter plus d'un certificat CA :
- Root CA
- Intermediate CA 1
- Identity Certificate
Solution :
En utilisant le tableau ci-dessous, on peut illustrer le certificat à la commande de mappage de point de confiance avec des couleurs qui correspondent à la chaîne précédente pour aider à la visualisation.
Nom du certificat | Trustpoint à utiliser | Commande à utiliser |
Autorité de certification racine | crypto pki trustpoint ROOT-CA | crypto pki authenticate ROOT-CA |
CA intermédiaire 1 | crypto pki trustpoint labTrustpoint | crypto pki authenticate labTrustpoint |
Certificat D'Identité | crypto pki trustpoint labTrustpoint | crypto pki import labTrustpoint, certificat |
La même logique peut être appliquée à une chaîne de certificats avec deux certificats CA intermédiaires. De nouveau, des couleurs sont fournies pour faciliter la visualisation de l'emplacement d'application de la nouvelle autorité de certification intermédiaire à la configuration IOS XE.
- Root CA
- Intermediate CA 1
- Intermediate CA 2
- Identity Certificate
Nom du certificat | Trustpoint à utiliser | Commande à utiliser |
Autorité de certification racine | crypto pki trustpoint ROOT-CA | crypto pki authenticate ROOT-CA |
CA intermédiaire 1 | crypto pki trustpoint INTER-CA | crypto pki authenticate INTER-CA |
CA 2 intermédiaire | crypto pki trustpoint labTrustpoint | crypto pki authenticate labTrustpoint |
Certificat D'Identité | crypto pki trustpoint labTrustpoint | crypto pki import labTrustpoint, certificat |
En regardant de plus près, on peut remarquer deux modèles :
Ces deux modèles ci-dessus peuvent être utilisés pour un nombre quelconque de certificats intermédiaires au-delà de deux, bien que dans la plupart des déploiements, un administrateur est susceptible de voir plus de deux autorités de certification intermédiaires dans une chaîne de certificats.
Par souci d'exhaustivité, le tableau de certificats racine/d'identité suivant est également fourni :
- Root CA
- Identity Certificate
Nom du certificat | Trustpoint à utiliser | Commande à utiliser |
Autorité de certification racine | crypto pki trustpoint labTrustpoint | crypto pki authenticate labTrustpoint |
Certificat D'Identité | crypto pki trustpoint labTrustpoint | crypto pki import labTrustpoint, certificat |
Quelques exemples courants sont détaillés ci-dessous :
Les vérifications avant/après valides sont effectuées en fonction de l'heure configurée par rapport à celle trouvée dans le certificat
004458: Aug 9 21:05:34.403: CRYPTO_PKI: trustpoint labTrustpoint authentication status = 0 %CRYPTO_PKI: Cert not yet valid or is expired - start date: 05:54:04 EDT Aug 29 2019 end date: 05:54:04 EDT Aug 28 2022
Si la vérification de révocation n’est pas désactivée, IOS XE effectue une vérification de révocation via la méthode configurée avant d’importer le certificat
003375: Aug 9 20:24:14: %PKI-3-CRL_FETCH_FAIL: CRL fetch for trustpoint ROOT failed 003376: Aug 9 20:24:14.121: CRYPTO_PKI: enrollment url not configured
Pour afficher des détails sur la configuration, l'authentification ou l'importation des points de confiance, utilisez les commandes ci-dessous :
show crypto pki trustpoints trustpoint_name show crypto pki certificates trustpoint_name
show crypto pki certificates verbose trustpoint_name
Lorsque vous déboguez des problèmes d'importation ou d'autres problèmes PKI, utilisez les débogages suivants.
debug crypto pki messages debug crypto pki transactions debug crypto pki validation debug crypto pki api debug crypto pki callback ! debug ssl openssl error debug ssl openssl msg debug ssl openssl states debug ssl openssl ext
Certains fournisseurs d'AC peuvent fournir des fichiers au format PKCS#12 (.pfx, .p12).
PKCS#12 est un type spécial de format de certificat dans lequel toute la chaîne de certificats, du certificat racine au certificat d'identité, est regroupée avec la paire de clés rsa.
Ce format est très pratique pour l'importation avec IOS XE et peut être facilement importé à l'aide de la commande ci-dessous :
Router(config)# crypto pki import PKCS12-TP pkcs12 terminal password Cisco123
or
Router(config)# crypto pki import PKCS12-TP pkcs12 ftp://cisco:cisco@192.168.1.1/certificate.pfx password Cisco123 % Importing pkcs12... Address or name of remote host [192.168.1.1]? Source filename [certificate.pfx]? Reading file from ftp://cisco@192.168.1.1/certificate.pfx! [OK - 2389/4096 bytes] % You already have RSA keys named PKCS12. % If you replace them, all router certs issued using these keys % will be removed. % Do you really want to replace them? [yes/no]: yes CRYPTO_PKI: Imported PKCS12 file successfully.
Un administrateur peut exporter des certificats vers le terminal au format texte clair PEM Base64, texte clair chiffré Base64 ou PKCS12 pour les importer dans d'autres périphériques homologues.
Cela est pratique lorsque vous abordez de nouveaux périphériques homologues et qu'un administrateur doit partager un certificat d'autorité de certification racine qui a signé le certificat d'identité des périphériques.
Voici un exemple de syntaxe :
Router(config)# crypto pki export labTrustpoint pem terminal
Router(config)# crypto pki export labTrustpoint pem terminal 3des password Cisco!123 Router(config)# crypto pki export labTrustpoint pkcs12 terminal password cisco!123
Il peut être nécessaire d'exporter des clés RSA pour les importer dans un autre périphérique ou pour les utiliser dans le cadre de dépannages. En supposant que la paire de clés a été créée comme exportable, les clés peuvent être exportées à l'aide de la commande crypto key export avec une méthode de cryptage (DES, 3DES, AES) et un mot de passe.
Exemple d'utilisation :
Router(config)# crypto key export rsa rsaKey pem terminal aes Cisco!123 % Key name: IOS-VG Usage: General Purpose Key Key data: -----BEGIN PUBLIC KEY----- [..truncated..] -----END PUBLIC KEY----- base64 len 1664-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-256-CBC,40E087AFF0886DA7C468D2084A0DECFB [..truncated..] -----END RSA PRIVATE KEY-----
Si la clé n'est pas exportable, une erreur s'affiche.
Router(config)# crypto key export rsa kydavis.cisco.com pem terminal 3des mySecretPassword
% RSA keypair kydavis.cisco.com' is not exportable.
Certains administrateurs peuvent exécuter RSA et la création de certificat hors boîte, il est possible d'importer les clés RSA en utilisant la commande crypto key import comme indiqué ci-dessous en utilisant le mot de passe.
Router(config)# crypto key import rsa rsaKey general-purpose exportable terminal mySecretPassword % Enter PEM-formatted public General Purpose key or certificate. % End with a blank line or "quit" on a line by itself. -----BEGIN PUBLIC KEY----- [..truncated..] -----END PUBLIC KEY----- % Enter PEM-formatted encrypted private General Purpose key. % End with "quit" on a line by itself. -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,9E31AAD9B7463502 [..truncated..] -----END RSA PRIVATE KEY----- quit % Key pair import succeeded.
Utilisez la commande crypto key zeroize rsa rsaKey pour supprimer une paire de clés RSA nommée rsaKey.
Importer l'offre groupée Cisco Trusted CA via Trustpool
Les pools de confiance varient légèrement d'un point de confiance, mais leur utilisation principale est la même. Lorsque les points de confiance contiennent généralement un seul certificat d'autorité de certification, un pool de confiance contient un certain nombre d'autorités de certification approuvées.
Cisco publie des bundles CA à l'adresse https://www.cisco.com/security/pki/
Il est courant de télécharger le fichier ios_core.p7b à l'aide de la commande ci-dessous :
Router(config)# crypto pki trustpool import clean url http://www.cisco.com/security/pki/trs/ios_core.p7b Reading file from http://www.cisco.com/security/pki/trs/ios_core.p7b Loading http://www.cisco.com/security/pki/trs/ios_core.p7b % PEM files import succeeded. Router(config)#
Non, une fois le CSR généré et enregistré, le point de confiance peut être supprimé et rajouté sans invalider le CSR.
Cette méthode est souvent utilisée par le support technique de Cisco pour redémarrer lorsque l'authentification/l'importation de certificats a mal tourné.
Tant que l'administrateur ou l'ingénieur de support ne régénère pas les clés RSA, le CSR ou la chaîne de certificats signés peuvent être importés et authentifiés.
Important ! La suppression du point de confiance ENTRAÎNERA la suppression de tout certificat authentifié/importé qui pourrait être plus problématique si ces certificats sont actuellement utilisés par un service ou une fonctionnalité.
Non, c'est fréquent lorsque les certificats arrivent à expiration. Un administrateur peut exécuter une commande crypto pki enroll pour créer un nouveau CSR et démarrer le processus de signature de certificat avec une CA pendant que les certificats existants qui ont été authentifiés/importés restent en cours d'utilisation. Le moment où un administrateur remplace les certificats par crypto pki authenticate/crypto pki import est le moment où les anciens certificats sont remplacés.
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
27-Apr-2023 |
Première publication |