El conjunto de documentos para este producto aspira al uso de un lenguaje no discriminatorio. A los fines de esta documentación, "no discriminatorio" se refiere al lenguaje que no implica discriminación por motivos de edad, discapacidad, género, identidad de raza, identidad étnica, orientación sexual, nivel socioeconómico e interseccionalidad. Puede haber excepciones en la documentación debido al lenguaje que se encuentra ya en las interfaces de usuario del software del producto, el lenguaje utilizado en función de la documentación de la RFP o el lenguaje utilizado por un producto de terceros al que se hace referencia. Obtenga más información sobre cómo Cisco utiliza el lenguaje inclusivo.
Cisco ha traducido este documento combinando la traducción automática y los recursos humanos a fin de ofrecer a nuestros usuarios en todo el mundo contenido en su propio idioma. Tenga en cuenta que incluso la mejor traducción automática podría no ser tan precisa como la proporcionada por un traductor profesional. Cisco Systems, Inc. no asume ninguna responsabilidad por la precisión de estas traducciones y recomienda remitirse siempre al documento original escrito en inglés (insertar vínculo URL).
Este documento sirve como guía general para configurar certificados IOS XE firmados por una autoridad de certificación (CA) de terceros.
Este documento detallará cómo importar una cadena firmada de CA multinivel como para que el dispositivo sirva como certificado de identidad (ID), así como cómo importar otros certificados de terceros para validar certificados.
El NTP y el tiempo de reloj DEBEN configurarse cuando se utilizan las funciones de IOS PKI.
Si un administrador no configura NTP, es posible que tenga problemas con un certificado generado con una fecha/hora futura/pasada. Este sesgo en la fecha o la hora puede causar problemas de importación y otros problemas en el futuro.
Ejemplo de configuración de NTP:
ntp server 192.168.1.1
clock timezone EST -5
clock summer-time EDT recurring
- Router de Cisco que ejecuta Cisco IOS® XE17.11.1a
La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.
Tenga en cuenta que algunas características detalladas en este documento pueden no estar disponibles en versiones anteriores de IOS XE. Siempre que ha sido posible, se ha tenido cuidado de documentar cuándo se ha introducido o modificado un comando o función.
Consulte siempre la documentación oficial de las funciones IOS XE PKI de una versión determinada para comprender cualquier limitación o cambio que pueda ser relevante para su versión específica:
Examples:
En un nivel superior, un administrador debe realizar las siguientes acciones al trabajar con certificados PKI IOS XE:
Estos pasos se detallan en las próximas secciones agrupadas por los comandos necesarios para la acción determinada.
Muchos administradores han ingresado este comando para habilitar Secure Socket Shell (SSH) en un router o como parte de alguna guía de configuración para una función. Sin embargo, pocos no han diseccionado lo que el comando realmente hace.
Tomemos por ejemplo los siguientes comandos:
crypto key generate rsa general-keys modulus 2048 label rsaKey exportable
crypto key generate ec keysize 521 exportable label ecKey
Si se analizan estos comandos en las partes específicas, se detallará el uso:
Ejemplos de Configuración:
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
Ejemplos de verificación:
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
Los Trustpoints son un concepto "tipo carpeta" para almacenar y administrar certificados PKI dentro de IOS XE. (Sintaxis de comandos)
A un nivel superior:
Nota: Las próximas secciones de crypto pki authenticate y crypto pki import y las secciones posteriores que detallan ejemplos de autenticación/importación para certificados multinivel proporcionarán contexto adicional a estas cuatro viñetas.
Los Trustpoints pueden tener varios comandos configurados. Estos comandos pueden utilizarse para influir en los valores de una Solicitud de firma de certificado (CSR) creada por el dispositivo mediante el comando crypto pki enroll en un punto de confianza.
Hay muchos comandos diferentes disponibles para un punto de confianza (demasiados para detallar en este documento), pero algunos ejemplos más comunes se detallan en el punto de confianza de ejemplo y en la tabla siguiente:
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
Comando | Descripción |
crypto pki trustpoint labTrustpoint | Etiqueta de configuración legible por personas para este punto de confianza. Se utiliza para vincular funciones o servicios en comandos posteriores. |
enrollment terminal pem |
Determina qué acción llevará a cabo el comando crypto pki enroll. En este ejemplo, enrollment terminal pem indica que la solicitud de firma de certificado (CSR) se enviará al terminal en un texto con formato PEM Base64. Otras opciones como enrollment selfsigned se pueden utilizar para crear un certificado autofirmado o enrollment url se puede configurar para definir una URL HTTP y aprovechar el protocolo Simple Certificate Enrollment Protocol (SCEP). Ambos métodos están fuera del alcance de este documento. |
serial-number none | Determina si los dispositivos IOS XE en serie se agregarán al CSR. Esto también inhabilita la indicación durante el comando crypto pki enroll. |
fqdn none | Determina si el nombre de dominio completo (FQDN) se agregará a CSR. Esto también inhabilita la indicación durante el comando crypto pki enroll. |
ip-address none | Determina si la dirección IP de los dispositivos IOS XE se agregará al CSR. Esto también inhabilita la indicación durante el comando crypto pki enroll. |
subject-name cn=router.example.cisco.com | Indica el X500 formateado que se agregará al CSR. |
subject-alt-name myrouter.example.cisco.com | A partir de IOS XE 17.9.1, se puede agregar una lista separada por comas de valores de nombre alternativo de sujeto (SAN) al CSR. |
revocation-check none | Indica cómo debe comprobar el dispositivo IOS XE la validez del certificado. Se pueden utilizar opciones como la lista de revocación de certificados (CRL) o el protocolo de estado de certificados en línea (OCSP) si son compatibles con la autoridad de certificación que se elija. Esto se utiliza principalmente cuando el punto de confianza es utilizado por alguna otra función o servicio IOS XE configurado. El estado de revocación también se comprueba cuando un certificado se autentica con un punto de confianza. |
rsakeypair rsaKey | Indica al comando que utilice el par de claves RSA con esta etiqueta específica. Para los certificados ECDSA, utilice el comando "eckeypair ecKey" que hace referencia a la etiqueta de la clave EC |
hash sha256 | Este comando influye en el tipo de algoritmo de hash que se va a utilizar. Las opciones son SHA1, SHA256, SHA384, SHA512 |
El comando crypto pki enroll se utiliza para activar el comando enrollment en un punto de confianza determinado. (Sintaxis del comando)
Para el punto de confianza de ejemplo mostrado anteriormente, el comando crypto pki enroll labTrustpoint mostrará la solicitud de firma de certificado (CSR) al terminal en formato de texto PEM Base64, como se muestra en el ejemplo siguiente.
Esta solicitud de firma de certificado ahora se puede guardar en un archivo de texto o copiar y pegar desde la línea de comandos con el fin de proporcionar a cualquier CA de terceros para validar y firmar.
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---
El comando crypto pki authenticate se utiliza para agregar un certificado de CA confiable a un punto de confianza dado. Cada punto de confianza se puede autenticar una sola vez. Es decir, un punto de confianza sólo puede contener una única raíz de CA o un certificado intermedio. Ejecutar el comando por segunda vez y agregar un nuevo certificado sobrescribirá el primer certificado.
Con el comando enrollment terminal pem configurado, el comando crypto pki authenticate solicitará al router que se cargue un certificado con formato PEM Base64 a través de la CLI. (Sintaxis del comando)
Un administrador puede autenticar un punto de confianza para agregar los certificados raíz y los certificados intermedios opcionales en una cadena de certificados con el fin de importar el certificado de identificación de un dispositivo más adelante.
Los administradores también pueden autenticar un punto de confianza para agregar otras CA raíz de confianza al dispositivo IOS XE con el fin de habilitar relaciones de confianza con dispositivos de peer durante los protocolos de enlace con ese dispositivo de peer.
Para ilustrarlo con más detalle, un dispositivo par puede incluir una cadena de certificados firmada por "CA raíz 1". Para que la validación de certificados durante el protocolo de enlace entre el dispositivo IOS XE y el dispositivo par sea exitosa; un administrador puede utilizar el comando crypto pki authenticate para agregar el certificado de CA a un punto de confianza en el dispositivo IOS XE.
El elemento principal que se debe recordar es que la autenticación de puntos de confianza mediante crypto pki authenticate siempre se realiza para agregar certificados raíz o intermedios de CA a un punto de confianza, no para agregar certificados de identidad. Tenga en cuenta que este concepto también se aplica a la autenticación de certificados autofirmados desde otro dispositivo par.
El siguiente ejemplo muestra cómo autenticar un punto de confianza desde antes usando el comando 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
Este comando se utiliza para importar el certificado de identidad (ID) en un punto de confianza. Un único punto de confianza sólo puede contener un único certificado de ID y, si se ejecuta el comando por segunda vez, se solicitará que se sobrescriba el certificado importado anteriormente. (Sintaxis del comando)
El siguiente ejemplo muestra cómo importar un certificado de Identidad en el punto de confianza de ejemplo desde antes usando el comando 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 administrador obtendrá un error si intenta importar un certificado antes de que el punto de confianza haya autenticado el certificado de CA utilizado para firmar directamente este certificado.
Router(config)# crypto pki import labTrustpoint certificate % You must authenticate the Certificate Authority before you can import the router's certificate.
Los certificados de CA del mismo nivel se agregan a IOS XE con el mismo método de agregar cualquier certificado de CA. Es decir, se autentican contra un punto de confianza mediante el comando crypto pki authenticate.
El siguiente comando muestra cómo crear un punto de confianza y autenticar un certificado de CA de terceros del mismo nivel.
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
Los ejemplos anteriores detallan cómo generar un CSR usando crypto pki enroll, autenticar el certificado de CA raíz usando crypto pki authenticate y luego importar el certificado de identidad usando crypto pki import.
Sin embargo, al introducir certificados intermedios, el proceso difiere ligeramente. No tema, los mismos conceptos y comandos todavía se aplican! La diferencia radica en la forma en que se establecen los puntos de confianza que contienen los certificados.
Recuerde que cada punto de confianza sólo puede contener un único certificado de CA raíz o intermedio. Por lo tanto, en un ejemplo donde tenemos una cadena de CA como la que se muestra a continuación, es imposible utilizar el comando crypto pki authenticate para agregar más de un certificado de CA:
- Root CA
- Intermediate CA 1
- Identity Certificate
Solución:
Usando la tabla a continuación se puede ilustrar el certificado para ordenar la asignación de punto de confianza con colores que corresponden a la cadena anterior para ayudar con la visualización.
Nombre del certificado | Punto de confianza a utilizar | Comando a utilizar |
CA raíz | crypto pki trustpoint ROOT-CA | crypto pki authenticate ROOT-CA |
CA 1 intermedia | crypto pki trustpoint labTrustpoint | crypto pki authenticate labTrustpoint |
Certificado de identidad | crypto pki trustpoint labTrustpoint | crypto pki import labTrustpoint certificate |
La misma lógica se puede aplicar a una cadena de certificados con dos certificados de CA intermedios. Nuevamente, se proporcionan colores para ayudar con la visualización de dónde se aplica la nueva CA intermedia a la configuración de IOS XE.
- Root CA
- Intermediate CA 1
- Intermediate CA 2
- Identity Certificate
Nombre del certificado | Punto de confianza a utilizar | Comando a utilizar |
CA raíz | crypto pki trustpoint ROOT-CA | crypto pki authenticate ROOT-CA |
CA 1 intermedia | crypto pki trustpoint INTER-CA | crypto pki authenticate INTER-CA |
CA 2 intermedia | crypto pki trustpoint labTrustpoint | crypto pki authenticate labTrustpoint |
Certificado de identidad | crypto pki trustpoint labTrustpoint | crypto pki import labTrustpoint certificate |
Mirando de cerca uno puede notar dos patrones:
Estos dos patrones anteriores se pueden utilizar para cualquier número de certificados intermedios más allá de dos, aunque en la mayoría de las implementaciones es probable que un administrador vea más de dos CA intermedias en una cadena de certificados.
También se proporciona la siguiente tabla de certificados de identidad/raíz para completar la información:
- Root CA
- Identity Certificate
Nombre del certificado | Punto de confianza a utilizar | Comando a utilizar |
CA raíz | crypto pki trustpoint labTrustpoint | crypto pki authenticate labTrustpoint |
Certificado de identidad | crypto pki trustpoint labTrustpoint | crypto pki import labTrustpoint certificate |
A continuación se detallan algunos ejemplos comunes:
Las comprobaciones válidas antes y después se realizan en función del tiempo configurado frente al encontrado en el certificado
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 comprobación de revocación no está deshabilitada, IOS XE realizará una comprobación de revocación a través del método configurado antes de importar el certificado
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
Para ver los detalles sobre la configuración, la autenticación o la importación del punto de confianza, utilice los siguientes comandos:
show crypto pki trustpoints trustpoint_name show crypto pki certificates trustpoint_name
show crypto pki certificates verbose trustpoint_name
Al depurar problemas de importación u otros problemas de PKI, utilice los siguientes debugs.
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
Algunos proveedores de CA pueden proporcionar archivos de vuelta en formato PKCS#12 (.pfx, .p12).
PKCS#12 es un tipo especial de formato de certificado en el que toda la cadena de certificados, desde el certificado raíz hasta el certificado de identidad, se agrupa junto con el par de claves rsa.
Este formato es muy útil para importar con IOS XE y se puede importar fácilmente usando el siguiente comando:
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 administrador puede exportar certificados al terminal como PEM de texto sin formato Base64, texto sin formato cifrado Base64 o formato PKCS12 para importarlos a otros dispositivos pares.
Esto es útil cuando se traen nuevos dispositivos de peer y un administrador necesita compartir un certificado de CA raíz que firmó el certificado de identidad de los dispositivos.
A continuación se muestra algún ejemplo de sintaxis:
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
Es posible que sea necesario exportar claves RSA para importarlas a algún otro dispositivo o para utilizarlas en los esfuerzos de resolución de problemas. Suponiendo que el par de claves se creó como exportable, las claves se pueden exportar mediante el comando crypto key export junto con un método de cifrado (DES, 3DES, AES) y una contraseña.
Ejemplo de Uso:
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 clave no se puede exportar, se mostrará un error.
Router(config)# crypto key export rsa kydavis.cisco.com pem terminal 3des mySecretPassword
% RSA keypair kydavis.cisco.com' is not exportable.
Algunos administradores pueden realizar la creación de RSA y certificados fuera de la caja, es posible importar las claves RSA usando el comando crypto key import como se muestra a continuación usando la contraseña.
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.
Utilice el comando crypto key zeroize rsa rsaKey para eliminar un par de llaves RSA denominado rsaKey.
Importar paquete Cisco Trusted CA a través de Trustpool
Los grupos de confianza varían ligeramente desde un punto de confianza, pero el uso principal es el mismo. Donde los puntos de confianza suelen contener un solo certificado de CA, un grupo de confianza contendrá varias CA de confianza.
Cisco publica paquetes de CA en https://www.cisco.com/security/pki/
Un uso común es descargar el archivo ios_core.p7b usando el siguiente comando:
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)#
No, una vez que se ha generado y guardado la CSR, el punto de confianza se puede eliminar y volver a agregar sin invalidar la CSR.
El soporte técnico de Cisco suele utilizarlo para empezar de cero cuando la autenticación/importación de certificados ha fallado.
Siempre y cuando el administrador o el ingeniero de soporte no regeneren las claves RSA; la cadena de certificados firmada o CSR se puede importar y se puede autenticar/importar.
¡Importante! La eliminación del punto de confianza ELIMINARÁ cualquier certificado autenticado/importado que podría ser más problemático si se asume que esos certificados están siendo utilizados actualmente por algún servicio o función.
No, esto es común cuando los certificados están a punto de caducar. Un administrador puede ejecutar un comando crypto pki enroll para crear una nueva CSR e iniciar el proceso de firma de certificados con una CA mientras los certificados existentes que se han autenticado/importado permanecen en uso. El momento en que un administrador reemplaza los certificados por crypto pki authenticate/crypto pki import es el momento en que se reemplazan los certificados antiguos.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
27-Apr-2023 |
Versión inicial |