Monthly archives "enero 2015"

Certificado mixto

Paulo Dias 0 Comments

De entre todo lo estándar que pueden ser las PKIs y los certificados, al final siempre llega un momento en que al mezclar cosas de distintas plataformas, la liamos. Y no es un liarla de liarla “parda”, no, no, es simplemente un liarla porque nos encontramos con las diferencias que al final existen, pese a estándares y otras declaraciones de intenciones.

 

¿Y a que me refiero yo exactamente con esta introducción?

Me refiero a que mientras todo nuestro proceso se desarrolle dentro de una misma plataforma, e.j. OpenSSL o Windows Server ADCS, lo normal es que todo sea maravilloso, el problema empieza con las mezclas. Como siempre, las mezclas acaban en problemas… Bueno, volviendo al tema que nos atañe, que se me va.

Mezclas, es decir, cosas como procesar solicitudes de una plataforma en la otra, por ejemplo. La situación que os describo hoy puede ser muy útil en escenarios del día a día, donde tenemos que generar certificados para multitud de equipos que no tienen plataforma Windows, ni saben de dominios de AD ni nada de esas cosas.

En mi caso concreto, lo hago a menudo para impresoras, switches de red y equipos con plataforma Linux. En estos casos, lo que ocurre es que acabamos con un fichero de texto (.csr), conteniendo la solicitud de certificado generada por el equipo, o por la suite OpenSSL si se trata de una maquina Linux.

 

Ooops!.. (El Error)

Si intentamos entregar esta solicitud directamente a una CA (entidad certificadora) Windows Server ADCS, a través de la consola de dicha CA (pulsando botón derecho sobre la CA y luego Todas las tareas -> Enviar solicitud nueva…), lo más probable es que acabemos con un mensaje similar a este que vemos abajo:

 

CertReq-ErrorCSR

Error al procesar una solicitud de OpenSSL

 

¿Qué ha pasado?

Bueno, que nadie entre en pánico, es sencillo. Lo que ocurre es que, las CAs en Windows Server requieren que en la solicitud se les indique la plantilla de certificado a usar para emitir dicho certificado, peeeero, estos equipos al ser completamente independientes al dominio, plataforma y todo lo que le rodea, no disponen de ninguna información acera de dichas plantillas. Por este motivo no queda otra que generar la solicitud sin dicha información, esperando que eso se indique durante el proceso de emisión.

 

La salvación…

Afortunadamente, existe un comando fantástico en todas las CAs Windows Server, que nos permite hacer el truco, os hablo de certreq. Si no lo conocíais os lo presento:

  – certreq.. Estos son nuestros carísimos IT Pros

  – IT Pros.. Nuestro queridísimo certreq

certreq es el comando que gestiona las operaciones relacionadas con las solicitudes y emisión de certificados en las CAs Windows Server, y que nos permite especificar que plantilla queremos usar para procesar una determinada solicitud. Así que, nuestra salvación está en este comandito que os indico a continuación:

certreq -submit -attrib "CertificateTemplate:WebServer" SolicitudCert.csr

Esta es la forma de especificar la plantilla que queremos usar para emitir el certificado solicitado mediante el fichero SolicitudCert.csr, a través del atributo CertificateTemplate incluido en la línea de comando.

 

Y si… me dan miedo las consolas

No pasa nada, afortunadamente tenemos una alternativa a través del portal de la CA, para ello solo tenemos que conectarnos a la URL: https://<ServidorCA>/certsrv, donde <ServidorCA> es el nombre de nuestro servidor que ejecuta el rol de Windows Server ADCS, y el responsable por emitir los certificados en nuestro entorno.

 

CAweb-Request

Envío de solicitud a través del portal web de la CA

 

Navegando por las opciones: Solicitar un certificado -> Solicitud avanzada de certificado -> Enviar una solicitud de certificado con un archivo codificado en base64 CMC o PKCS#10 o una solicitud de renovación con un archivo codificado en base64 PKCS#7, podemos copiar y pegar la solicitud de certificado directamente en la caja de texto, y recoger el resultado, bien instalando dicho certificado en la máquina local, o bien mediante el fichero descargado.

 

La guinda…

Para terminar solo una pequeña notita. Si acaso no os aparece en el desplegable la plantilla que necesitáis usar para emitir el certificado, debéis aseguraros que esa plantilla tiene permisos de Leer e Inscribirse para la cuenta que estáis usando. Además, se debe realizar la publicación de dicha plantilla después de hacer el cambio, y reiniciar la entidad certificadora.

En el caso de que la plantilla ya tenga asignados esos permisos, para una cuenta o grupo administrativo, y se esté usando esa cuenta, debemos lanzar Internet Explorer dentro de un contexto de seguridad de administración, usando la opción “Ejecutar como Administrador”.

Dicho esto… ¡A mezclar todo el mundo!