Certificado para servidor con nombres alternativos

25 septiembre 2018
Josep Ma Solanes 1

Últimamente os habréis dado cuenta que los navegadores de Internet modernos han empezado a marcar webs como inseguras a pesar de disponer de un certificado. Eso se debe principalmente a sistemas de cifrado vulnerables, pero también a la falta de nombres alternativos.

Vemos un ejemplo de certificado creado con los métodos tradicionales de un entorno Microsoft Windows Server, pidiendo una plantilla estándar desde el Internet Information Server. Al acceder a la web, si que se indica que el protocolo utilizado es el HTTPS, pero la web no es segura.

Abriendo las herramientas de desarrollador del navegador, en el caso del Google Chrome pulsando la tecla F12, seleccionando la pestaña Seguridad, indica cuál es el problema con el certificado:

  • No hay un nombre alternativo.
  • El nombre común no es válido.

A estos errores también se puede añadir el de un cifrado flojo si no se ha actualizado la entidad certificadora para que utilice algoritmos de cifrado más elevados.

En esta entrada se explica como crear un nuevo certificado para el servidor mediante la entidad certificadora de Microsoft Windows Server que actualice el nivel de cifrado y incluya las características de nombres alternativos necesarias en los días que corren.

Los pasos a seguir:

Crear una plantilla nueva de certificado para servidores web

Para asegurar que los nuevos certificados utilizan los métodos de cifrado que actualmente se pueden considerar seguros, procedemos a crear una nueva plantilla personalizada.

Desde el administrador de la entidad certificadora, localizar la carpeta Plantillas de certificado, donde se hacen las siguientes operaciones:

  • Se creará una nueva plantilla con la configuración deseada.
  • Se activará esta plantilla en la entidad certificadora.

Empezamos creando una plantilla nueva con la configuración deseada. Botón derecho sobre la carpeta Plantillas de certificado y seleccionar Administrar.

Se abre una nueva ventana donde se visualizan las plantillas de certificado que dispone la entidad certificadora. Para crear una nueva plantilla se hace a partir de las existentes de la entidad, duplicándola y modificando los parámetros que se necesitan.

En el caso que nos ocupa, para la creación de un certificado de servidor, hay que localizar la plantilla Servidor Web. Observar que es una versión 4.1, muy inicial. Botón derecho sobre la plantilla Servidor Web y hacer clic en Duplicar plantilla.

El número de versión representa el nivel de compatibilidad de la plantilla con los servidores y entidad de Microsoft Windows Server, de un vistazo al listado se puede descartar quien está actualizado y quien no. Como más bajo es el númeromás compatible es con sistemas antiguos y, por lo tanto, métodos de cifrado inferiores.

La nueva plantilla que se crea, en la pestaña de compatibilidad, hay seleccionados los métodos de compatibilidad con el entorno Windows Server 2003, que provienen de la configuración de la plantilla base que se ha utilizado.

La primera modificación a hacer en la nueva plantilla para servidor web es cambiar el nivel de compatibilidad, tanto de la entidad certificadora como del servidor al que va destinado. Este cambio supone ampliar las características y/o atributos del propio certificado.

El entorno al que van dirigidos los nuevos certificados es un entorno nativo Microsoft Windows Server 2016, por lo que se seleccionará este nivel de compatibilidad.

Entidad Certificadora: Windows Server 2016

Se advierte de los cambios de compatibilidad de la plantilla. Simplemente aceptamos haciendo clic en el botón OK.

Repetir el proceso para el certificado de servidor a emitir.

Ojo, que debe coincidir como mínimo con la versión del servidor donde se tiene que instalar. Es decir, si el certificado lo quiero emitir para un servidor Windows Server 2016, puedo escoger cualquier versión. Ahora bien, si el servidor es un Windows Server 2012 R2, no se podrá instalar un certificado generado para un Windows Server 2016.

Como que el certificado es para un servidor Windows Server 2016, seleccionar esta versión.

Otra vez, advertencias de compatibilidad, hacer clic en el botón OK para aceptarlas y poder continuar.

Con el nivel de compatibilidad correcto para los nuevos certificados definido se continúa con la personalización del mismo.

Selecciona la pestaña General. Donde se indica el nombre descriptivo para la plantilla de certificado. Por ejemplo: Servidor Web 2016. El período de validez del certificado: 2 años y la ventana de tiempo para poder renovar el certificado antes de que caduque: 6 semanas. Indicar según vuestras preferencias.

No me pongáis que el certificado tendrá una duración de 99 años, que con estos períodos los ordenadores habrán superado la potencia de cálculo para que sea vulnerable y, por lo tanto, no tendrá ninguna utilidad.

Como que el certificado del tipo servidor nos puede interesar distribuir a otros servidores (en el caso de granjas de servidores, instalación en dispositivos externos o balanceadores), en el apartado de Request handling, hay que marcar el checkbox que nos permite exportar el certificado con la clave privada.

Configurar los algoritmos de cifrado a utilizar. Hacer clic en la pestaña Criptografía. Lo primero que hay que cambiar con urgencia es el Proveedor de cifrado. Recordar que la mayoría de navegadores ya se han actualizado y los motores de cifrado antiguos, como los de defecto de Microsoft Windows Server 2003, se consideran inválidos.

Como categoría del proveedor, seleccionar Key Storage Provider.

El algoritmo también cambia según el proveedor seleccionado. Se puede dejar RSA. Subir el tamaño de la clave a 4096 y también cambiar el hash de la petición a SH512.

Con el certificado configurado a nivel de compatibilidad y cifrado sólo queda asignar los permisos de quien puede pedir este tipo de certificado. Seleccionar la pestaña de Seguridad y hacer clic en el botón Añadir.

Hacer clic en el botón Tipo de Objeto para cambiar el valor a fin de que se puedan seleccionar equipos.

Desmarcar las opciones que hay y marcar Equipos.

Indicar el nombre del servidor que debe tener permisos para pedir este tipo de certificado.

Asignar los permisos de enrolllectura.

Con todas las modificaciones realizadas en la plantilla es hora de guardar los cambios. Hacer clic en el botón OK.

En el listado de plantillas de certificado, asegurar que aparece la nueva plantilla para autenticación de servidor. Cerrar la consola de plantillas.

De nuevo en la consola de administración de la entidad certificadora, seleccionar la carpeta plantillas de certificado, donde se visualizan las plantillas disponibles para emitir certificados. Naturalmente, la plantilla que se ha creado anteriormente no aparece, porque sólo se ha creado como plantilla.

Para que la entidad certificadora pueda emitir certificados con la nueva plantilla, hay que habilitarla. Botón derecho sobre la carpeta de Plantillas de certificado, seleccionar NuevoPlantilla de certificado a emitir.

Seleccionar la plantilla de certificados que se debe poder emitir en la entidad certificadora. En el listado de opciones tiene que aparecer la nueva plantilla de certificado que se ha creado. Seleccionarla y hacer clic en el botón OK.

Ahora sí ya hay la nueva plantilla para autenticación de servidor para Windows Server 2016 disponible para emitir certificados.

 

Pedir un certificado para servidor

Para pedir un certificado de servidor con las nuevas características siento deciros que ya no se puede utilizar la consola automática del Internet Information Server de Microsoft Windows Server. En su lugar, se debe acceder directamente por la consola de administración de certificados del equipo con permisos.

Desde el escritorio, pulsar la combinación de teclas Windows + R o acceder a la opción de ejecutar haciendo clic con el botón derecho sobre el menú de Windows. Escribir mmc y hacer clic en el botón OK para iniciar una nueva consola de administración vacía.

Se inicia una consola de administración vacía a la que se carga el Snap-In de certificados. Acceder al menú Archivo y hacer clic en Añadir/sacar snap-in

Del listado de complementos Snap-In seleccionar Certificados y hacer clic en el botón Añadir.

Seleccionar el almacén que tiene que gestionar el snap-in de certificados. Cómo que se quiere crear un certificado para el servidorseleccionar la cuenta de equipo y hacer clic en el botón Siguiente.

El almacén de certificados será el del propio ordenador. Dejar seleccionado equipo local y hacer clic en el botón Finalizar.

Con la consola abierta por el almacén de certificados del equipo local, localizar la carpeta personal. Botón derecho sobre esta, hacer clic en todas las tareas y seleccionar Nueva petición de certificado.

Se inicia el asistente para pedir un nuevo certificado. Hacer clic en el botón Siguiente para continuar.

Indicar la política de petición del certificado, dejar seleccionado Active Directory y hacer clic en el botón Siguiente para continuar.

Seleccionar la plantilla de certificado que se tiene que pedir, la que corresponda que se ha creado en el paso anterior, en el ejemplo Servidor Web 2016.

Si esta no aparece en el listado, algo se ha hecho mal en la entidad certificadora

  • La plantilla del certificado no está correctamente publicada dentro de la entidad certificadora.
  • El equipo desde la qué se pide no tiene permisos para pedirla.
  • La versión del sistema operativo desde donde se pide el certificado es inferior al seleccionado por el certificado.

Veréis que hay un símbolo de advertencia en la plantilla, eso indica que hay que completar datos MANUALMENTE para poder emitir el certificado. Hacer clic sobre la línea de advertencia para acceder al apartado de datos a completar.

En la pestaña Subject llenar los dos apartados: Subject nameAlternative name.

Empezando por el Subject Name, ir seleccionando el tipo de valor, asignarle el valor y hacer clic en el botón añadir.

Por ejemplo, por el common name (nombre común que identifica el servidor con el de la URL de conexión al equipo), seleccionar Common name y en valor introducir: www.jmsolanets.net Hacer clic en el botón Añadir para guardar este valor.

Repetir el proceso para el resto de atributos:

  • Organization: Nombre del propietario que aparece en el certificado.
  • Unidad organizativa
  • Locality
  • State
  • Country: ES (recordar que corresponde al valor ISO del país).

Nombres alternativosnecesario para que los navegadores nos validen correctamente el certificado. De la lista de opciones, seleccionar el tipo DNS.

Añadir el valor, aunque parezca repetido, del common name.

Si el certificado es para una web que también se resuelve por el nombre del dominio, añadir el valor correspondiente al propio dominio, o los equipos de los que se tenga que servir (sería el caso de un servidor de Microsoft Exchange).

Con los atributos definidos, desde la pestaña General, indicar el nombre identificativo que aparecerá en el almacén de certificados del equipo o en el listado de certificados de la entidad certificadora. No tiene efectos propiamente, sólo es para su identificación.

Echar un vistazo a la pestaña de Clave privada para comprobar que el proveedor de criptografía es el Key Storage Provider, que el tamaño de la clave de cifrado será el definido en la plantilla de 4096 y la clave pública se podrá exportar a otro equipo.

Con estos datos ya se puede pedir el certificado a la entidad certificadora. Hacer clic en el botón OK.

Volviendo al listado ha desaparecido la advertencia de la plantilla. Hacer clic en el botón Enroll para hacer la solicitud y inscripción automática.

Perfecto, ya se ha creado el certificado pedido. Hacer clic en el botón Finish para cerrar el asistente.

Volviendo a la consola principal de administración de certificados, desplegando la carpeta Personal > Certificado se visualiza el nuevo certificado instalado en el equipo.

Comprobando los detalles haciendo clic dos veces sobre él y accediendo a la pestaña Detalles. En el listado de atributos localizar el Subject Alternative Names donde se tienen que visualizar los diferentes nombres alternativos que se han asignado.

Otros valores a comprobar son que la clave privada sea de 4096 bits y el algoritmo de hash sea el indicado.

Asignar un certificado al servidor web Microsoft Internet Information Server (IIS)

Desde el administrador del Internet Information Server, acceder al sitio donde se quiere asignar.

Hacer clic con el botón derecho sobre el sitio y seleccionar Editar enlaces.

Hacer clic en el botón Añadir para activar el protocolo HTTPS.

Seleccionar el protocolo https y asociar el certificado que se acaba de crear en el paso anterior.

Cerrar los cuadros de diálogo haciendo clic en el botón OK y cerrar.

 

Comprobar el certificado de servidor con un navegador

Simplemente accediendo a la web de forma segura con un navegador web, este cierra correctamente la conexión, identificando el sitio web como seguro. Si no lo hace, aseguraros que confiáis en la entidad certificadora que ha emitido el certificado.

Abriendo la consola de desarrollo, con Google Chrome pulsando la tecla F12, seleccionar la pestaña Seguridad, se puede comprobar que el certificado del servidor ahora pasa todos los tests del navegador.

 

¿Te ha gustado el artículo? Lo puedes compartir en las redes sociales. También puedes dejar tu opinión, comentario o sugerencia. ¡Gracias!

Similar Posts by The Author:

 

Un comentari per a
“Certificado para servidor con nombres alternativos”

  1. Articulo muy interesante
    En un servidor Windows Server 2019 siguiendo tus pasos cuando estoy duplicando la plantilla llego a la parte de cryptografia y no me deja seleccionar key storage provider. Solo me aparece Proveedor de servicios cryptograficos heredados.
    La configuración de la CA a nivel de cifrado es:

    Proveedor: Microsoft Software Key Storage Provider
    Algoritmo hash: SHA256

    ¿Alguna idea?

    Saludos

     
Els comentaris estan tancats.