Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Problema

Solución

Crear root-ca con el comando Linux CAT en vShell

Crear root-ca con VI Text Editor en vShell

Instalar certificado

Introducción

Este documento describe cómo instalar un certificado raíz en vEdges SD-WAN con diferentes herramientas.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Red de área extensa definida por software (SD-WAN) Cisco Catalyst

- Certificados

- Linux básico

Componentes Utilizados

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.

- Cisco Catalyst SD-WAN Validator 20.6.3

- Cisco vEdge 20.6.3

Problema

Un certificado digital es un archivo electrónico que certifica la autenticidad de un dispositivo, servidor o usuario mediante el uso de criptografía e infraestructura de clave pública (PKI). La autenticación de certificados digitales ayuda a las organizaciones a garantizar que solo los dispositivos y usuarios de confianza puedan conectarse a sus redes.

La identidad de los routers de hardware vEdge la proporciona un certificado de dispositivo firmado por Avnet, generado durante el proceso de fabricación y grabado en el chip del Módulo de plataforma segura (TPM). Los certificados raíz de Symantec/DigiCert y Cisco están precargados en el software de confianza para los certificados de los componentes de control. Los certificados raíz adicionales deben cargarse manualmente, distribuirse automáticamente mediante el administrador de SD-WAN o instalarse durante el proceso de aprovisionamiento automatizado.

Uno de los problemas más comunes en SD-WAN es la falla de Control Connections debido a un certificado no válido. Esto ocurre porque el certificado nunca se instaló o porque está dañado.

Para validar la leyenda de error Conexión de control, utilice el comando EXEC show control connections-history.

vEdge # show control connections-history

Legend for Errors

ACSRREJ    - Challenge rejected by peer.               NOVMCFG   - No cfg in vmanage for device.

BDSGVERFL  - Board ID Signature Verify Failure.        NOZTPEN   - No/Bad chassis-number entry in ZTP.

BIDNTPR    - Board ID not Initialized.                 OPERDOWN  - Interface went oper down.

BIDNTVRFD  - Peer Board ID Cert not verified.          ORPTMO    - Server's peer timed out.

BIDSIG    - Board ID signing failure.                  RMGSPR    - Remove Global saved peer.

CERTEXPRD  - Certificate Expired                       RXTRDWN   - Received Teardown.

CRTREJSER  - Challenge response rejected by peer.      RDSIGFBD  - Read Signature from Board ID failed.

CRTVERFL   - Fail to verify Peer Certificate.          SERNTPRES - Serial Number not present.

CTORGNMMIS - Certificate Org name mismatch.            SSLNFAIL  - Failure to create new SSL context.

DCONFAIL   - DTLS connection failure.                  STNMODETD - Teardown extra vBond in STUN server mode.

DEVALC     - Device memory Alloc failures.             SYSIPCHNG - System-IP changed

DHSTMO     - DTLS HandShake Timeout.                   SYSPRCH   - System property changed

DISCVBD    - Disconnect vBond after register reply.    TMRALC    - Timer Object Memory Failure.

DISTLOC    - TLOC Disabled.                            TUNALC    - Tunnel Object Memory Failure.

DUPCLHELO  - Recd a Dup Client Hello, Reset Gl Peer.   TXCHTOBD  - Failed to send challenge to BoardID.

DUPSER     - Duplicate Serial Number.                  UNMSGBDRG - Unknown Message type or Bad Register msg.

DUPSYSIPDEL- Duplicate System IP.                      UNAUTHEL  - Recd Hello from Unauthenticated peer.

HAFAIL     - SSL Handshake failure.                    VBDEST    - vDaemon process terminated.

IP_TOS     - Socket Options failure.                   VECRTREV  - vEdge Certification revoked.

LISFD      - Listener Socket FD Error.                 VSCRTREV  - vSmart Certificate revoked.

MGRTBLCKD  - Migration blocked. Wait for local TMO.    VB_TMO    - Peer vBond Timed out.

MEMALCFL   - Memory Allocation Failure.                VM_TMO    - Peer vManage Timed out.

NOACTVB    - No Active vBond found to connect.         VP_TMO    - Peer vEdge Timed out.

NOERR      - No Error.                                 VS_TMO    - Peer vSmart Timed out.

NOSLPRCRT  - Unable to get peer's certificate.         XTVMTRDN  - Teardown extra vManage.

NTPRVMINT  - Not preferred interface to vManage.       XTVSTRDN  - Teardown extra vSmart.

STENTRY    - Delete same tloc stale entry.

PEER     PEER     PEER             SITE        DOMAIN PEER             PRIVATE  PEER             PUBLIC                                   LOCAL      REMOTE     REPEAT

TYPE     PROTOCOL SYSTEM IP        ID          ID     PRIVATE IP       PORT     PUBLIC IP        PORT    LOCAL COLOR      STATE           ERROR      ERROR      COUNT DOWNTIME

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

vbond    dtls     -                0           0      10.10.10.1     12346    10.10.10.1     12346   public-internet  tear_down          NOERR      CRTVERFL     393   2024-01-31 T17:19:15-0500

vbond    dtls     -                0           0      10.10.10.2     12346    10.10.10.2     12346   public-internet  tear_down          NOERR      CRTVERFL     399   2024-01-31 T17:18:56-0500

Algunas causas comunes de la etiqueta de error CRTVERFL son:

- La hora de vencimiento del certificado.

- Root-ca es diferente.

- Si una actualización de root-ca ocurre en los controladores.

- Se utiliza una autoridad certificadora (CA) diferente de Cisco y los dispositivos necesitan la instalación manual de root-ca.

- Cambio de autoridad certificadora en la superposición.

Nota: Para obtener más información sobre los errores de Control Connections, visite Troubleshoot SD-WAN Control Connections.

El archivo root-ca debe ser exactamente el mismo en todos los componentes de la superposición. Hay dos formas de validar que el archivo root-ca en utilizado no es el correcto

1. Revise el tamaño del archivo, esto es útil en situaciones en las que la raíz-ca tenía una actualización.

vBond:/usr/share/viptela$ ls -l

total 5

-rw-r--r-- 1 root root   294 Jul 23 2022 ISR900_pubkey.der

-rw-r--r-- 1 root root  7651 Jul 23 2022 TPMRootChain.pem

-rw-r--r-- 1 root root 16476 Jul 23 2022 ViptelaChain.pem

-rwxr-xr-x 1 root root 32959 Jul 23 2022 ios_core.pem

-rw-r--r-- 1 root root 24445 Dec 28 13:59 root-ca.crt

vEdge:/usr/share/viptela$ ls -l

total 6

drwxr-xr-x 2 root root   4096 Aug 28  2022 backup_certs

-rw-r--r-- 1 root root   1220 Dec 28 13:46 clientkey.crt

-rw------- 1 root root   1704 Dec 28 13:46 clientkey.pem

-rw------- 1 root root   1704 Dec 28 13:46 proxy.key

-rw-r--r-- 1 root root      0 Aug 28  2022 reverse_proxy_mapping

-rw-r--r-- 1 root root 23228 Aug 28 2022 root-ca.crt

2. Segunda y más confiable manera de validar que el archivo es exactamente igual que el archivo de origen es con el comando md5sum root-ca.crt vshell. Una vez que se proporciona el md5, compare el resultado de los componentes Controller y Edge device.

vBond:/usr/share/viptela$ md5sum root-ca.crt

a4f945b9a1f50f1fa68d539dcf2e54f2 root-ca.crt

vEdge:/usr/share/viptela$ md5sum root-ca.crt

b36358d01b36254a54db2f8db2266ced root-ca.crt

Nota: Como el comando md5sum root-ca.crt vshell se utiliza para verificar la integridad de los archivos, ya que prácticamente cualquier cambio en un archivo hace que el hash MD5 sea diferente.

Solución

La cadena de certificados raíz de un dispositivo se puede instalar con varias herramientas. Hay dos maneras de instalarlo con el uso de comandos de Linux.

Crear root-ca con el comando Linux CAT en vShell

Nota: Este procedimiento se aplica a los archivos root-ca que no tienen líneas en blanco dentro del contenido, para situaciones con líneas en blanco usadas en Linux mediante el procedimiento del editor.

Paso 1. Obtenga y copie el archivo root-ca.crt del validador.

La raíz-ca es la misma en todos los controladores y se puede copiar de cualquiera de ellos en la ruta /usr/share/viptela/.

vBond# vshell

vBondvBond:~$ cat /usr/share/viptela/root-ca.crt

-----BEGIN CERTIFICATE-----

MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB

yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL

aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL

U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y

SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG

BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+

rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/

NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E

BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH

BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy

aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv

hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq

-----END CERTIFICATE-----

Paso 2. Cree el archivo root-ca.crt en el borde.

Desde vshell, navegue hasta /home/admin o /home/<username> y cree el archivo root-ca.crt.

vEdge# vshell

vEdge:~$ cat <<"" >> root-ca.crt

> -----BEGIN CERTIFICATE-----

MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB

yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL

aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL

U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y

SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG

BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+

rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/

NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E

BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH

BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy

aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv

hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq

-----END CERTIFICATE-----

>

vEdge:~$

Paso 3. Validar que se ha completado.

vEdge:~$ cat root-ca.crt

-----BEGIN CERTIFICATE-----

MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB

yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL

aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL

U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y

SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG

BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+

rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/

NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E

BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH

BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy

aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv

hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq

-----END CERTIFICATE-----

vEdge:~$

Nota: Es importante validar que el archivo esté completo; si no está completo, elimine el archivo con el comando rm root-ca.crt vshell y créelo nuevamente desde el Paso 2.

Salga de vshell y continúe con la Sección.

vEdge:~$ exit

Crear root-ca con VI Text Editor en vShell

Paso 1. Obtenga y copie el archivo root-ca.crt del validador.

La raíz-ca es la misma en todos los controladores y se puede copiar de cualquiera de ellos en la ruta /usr/share/viptela/.

vBond# vshell

vBond:~$ cat /usr/share/viptela/root-ca.crt

-----BEGIN CERTIFICATE-----

MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB

yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL

aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL

U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y

SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG

BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+

rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/

NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E

BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH

BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy

aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv

hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq

-----END CERTIFICATE-----

Paso 2. Cree el archivo root-ca.crt en el borde.

Desde vshell, navegue hasta /home/admin o /home/<username> y cree el archivo root-ca.crt.

vEdge# vshell

vEdge:~$ cd /usr/share/viptela/

vEdge:~$ pwd

/home/admin

vEdge:~$ vi root-ca.crt

Una vez que haga clic en Intro, aparecerá el mensaje del editor.

Paso 3. Entrar en modo de inserción

- Tipo: i y pegue el contenido del certificado del paso 1. Desplácese hacia abajo y confirme que el certificado está completo.

Paso 4. Salga del modo de inserción y guarde el certificado.

- Presione la tecla ESC.

- Escriba :wq! seguido de enter para guardar los cambios y salir del editor.

vEdge:/usr/share/viptela$ cat root-ca.crt

-----BEGIN CERTIFICATE-----

MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB

yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL

aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL

U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y

SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG

BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+

rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/

NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E

BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH

BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy

aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv

hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq

-----END CERTIFICATE-----

Paso 5. Validar que se ha completado.

vEdge:~$ cat root-ca.crt

-----BEGIN CERTIFICATE-----

MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB

yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL

aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL

U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y

SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG

BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+

rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/

NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E

BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH

BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy

aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv

hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq

-----END CERTIFICATE-----

vEdge:~$

Nota: Es importante validar que el archivo esté completo; si no está completo, elimine el archivo con el comando rm root-ca.crt vshell y créelo nuevamente desde el Paso 2.

Salga de vshell y continúe con la Sección.

vEdge:~$ exit

Instalar certificado

Paso 1. Instale el certificado root-ca con el comando request root-cert-chain install <path>.

vEdge# request root-cert-chain install /home/admin/root-ca.crt

Uploading root-ca-cert-chain via VPN 0

Copying ... /home/admin/PKI.pem via VPN 0

Updating the root certificate chain..

Successfully installed the root certificate chain

Paso 2. Valide que esté instalado con el comando show control local properties.

vEdge# show control local-properties

personality vedge

organization-name organization-name

root-ca-chain-status Installed

certificate-status Installed

certificate-validity Valid

certificate-not-valid-before Apr 11 17:57:17 2023 GMT

certificate-not-valid-after Apr 10 17:57:17 2024 GMT