Instalar certificados SSL intermedios en un router Cisco con IOS

Hace tiempo no escribía en este blog y creo que es hora de hacer un artículo nuevo. En este caso quiero dejar un respaldo de un procedimiento que yo creía que era simple pero que me tomó casi 2 días enteros en resolver ya que no está muy bien documentado y finalmente después de muchas pruebas logré activarlo, así que lo dejo acá para quien lo necesite.

Un cliente mío tenía una VPN SSL y necesitábamos renovar los certificados SSL para evitar el molesto error de que la conexión es insegura ya que los actuales habían expirado. Para ello compramos un certificado en COMODO de tipo Essential SSL y donde yo esperaba solo dos certificados (un CA y un CRT) pero que en realidad me enviaron 4. Acá es donde comienza mi dolor de cabeza:

  • AddTrustExternalCARoot.crt (Certificado de CA externo)
  • COMODORSADomainValidationSecureServerCA.crt (Certificado intermedio 1?)
  • COMODORSAAddTrustCA.crt (Certificado intermedio 2?)
  • vpn.cliente.net.crt (Certificado de cliente)

Vale destacar que aunque este procedimiento lo realicé para una VPN, en realidad sirve para cualquier servicio que utilice SSL en un router, como HTTPS o SSH también. También sirve para otros proveedores como GoDaddy o Verisign.

El primer paso fue, naturalmente, generar el CSR (Certificate Signing Request) para poder enviárselo a COMODO y luego de pagar el valor correspondiente ellos me hayan enviado estos 4 archivos independientes.

  1. Generar CSR para el dominio vpn.cliente.net. Para ello debemos crear las claves RSA que llamaremos “VPN-key” y con un tamaño de clave de 2048 bits (1024 es muy poco ;))

2. Debemos crear un Trustpoint para definir el CSR que queremos enviar a COMODO. Acá debemos definir un nombre genérico (yo lo llamaré VPN-TP2 y ya verán porqué 2 y no 1, aunque ustedes pueden darle el nombre que quieran). Luego decimos que vamos a obtener el valor mediante el terminal y a continuación debemos generar los valores de nuestro certificado SSL. Estos valores deben coincidir con nuestra organización y sobre todo con el nombre de dominio en el valor CN.
Debemos indicar que utilizaremos la clave VPN-key para firmar esta solicitud y definir el nombre de dominio (FQDN) completo del router:

Luego indicamos que queremos que el router nos muestre por pantalla el CSR para nosotros poder enviarlo a la Autoridad Certificadora que en nuestro caso es COMODO:

Este código de CSR lo debemos enviar a COMODO y luego de las verificaciones respectivas nos llegarán los 4 archivos que indiqué al comienzo de este post.

Pues bien. ¿Cómo logramos insertar estos 4 certificados emitidos por nuestra Autoridad Certificadora (CA) en el router? Luego de quebrarme la cabeza por dos días logré encontrar el secreto y es que debemos seguir los siguientes pasos:

  • Se debe ignorar el certificado “AddTrustExternalCARoot.crt” ya que nosotros no lo necesitaremos.
  • Se deben crear dos Trustpoints diferentes: Uno para los certificados intermedios y otro para el certificado SSL como tal.
  • Se debe crear una cadena (chain) para enlazar los dos certificados intermedios.

IMPORTANTE: Si deben borrar algún Trustpoint previo, escojan el comando “no crypto pki certificate chain VPN-TP2” y no ejecuten “no crypto pki trustpoint VPN-TP2“. Este útimo comando borrará las claves RSA y deberán generar un nuevo CSR para solicitar que les emitan certificados SSL nuevos.

3. Ya tenemos un Trustpoint para nuestro certificado SSL el cual llamamos VPN-TP2. Tal vez a esta altura se estarán preguntando porqué 2 y no 1. Bueno, simplemente porque debemos crear un Trustpoint primario que enlazará los certificados malditos que nos envió COMODO… (Grrr). Este Trustpoint lo llamaré VPN-TP1 y al que ya existe (VPN-TP2) debemos agregar el comando chain-validation continue VPN-TPT1 para enlazar ambos Trustpoints y encadenarlos

Bien. Ya tenemos los dos Trustpoints (VPN-TP2 que es para nuestro certificado SSL y VPN-TP1 que es para los otros certificados intermedios). Ahora debemos autorizarlos y copiar las claves que nos enviaron desde COMODO. Primero agregaremos el certificado llamado “COMODORSAAddTrustCA.crt”. Por favor observen que para el caso de los dos certificados intermedios utilicé el comando “authenticate” y para el caso del certificado SSL utilice el comando “import”:

Ahora debemos autenticar el otro certificado que nos envió COMODO(COMODORSADomainValidationSecureServerCA.crt). Este certificado lo autenticaremos en el Trustpoint VPN-TP2

Finalmente debemos importar el certificado de nuestro dominio dns.cliente.net que nos envió Comodo. Este certificado lo importaremos en el Trustpoint VPN-TP2 que es donde en un principio definimos los valores CN, OU, etc.

De este modo ya tenemos incluido los certificados del bundle que nos enviaron. Al momento de ejecutar el comando crypto pki import VPN-TP2 y pegar el certificado correspondiente, el sistema debería indicar éxito (success) si todo quedó bien o error (failed) si algo no quedó como debe. En este último caso les recomiendo reintentar creando los trustpoints o eliminando los certificados con “no crypto pki certificate chain VPN-TP2″.

Espero que les ayude a evitar el dolor de cabeza que me generó a mi resolver este problema.

About Paulo Colomés

Ingeniero y consultor especialista en infraestructura y operaciones de redes. Instructor Cisco certificado CCNA R&S, CCDA, CCNA Security, CCNP R&S, ITQ, entre otros. Fundador de REDESCISCO.NET y Netlearning Academy (www.netlearning.cl)