En esta entrada veremos los requisitos y pasos para la instalación de un certificado digital en nuestro servidor Exchange 2016 para los servicios de IIS(OWA, ECP), SMTP, IMAP, POP. Para los que no estén al tanto, Let´s Encrypt es una entidad certificadora que proporciona certificados digitales gratuitos y es muy popular al día de hoy. Para ver mas sobre el proyecto pueden dirigirse al sitio oficial https://letsencrypt.org/.
Tener en cuenta que este certificado tiene una validez 90 días. En el procedimiento aquí detallado se muestra además la configuración para la renovación automática del certificado cada 55 días.
Prerrequisitos .
- Instalar .NET Framework 4.7.2. Enlace de descarga: https://dotnet.microsoft.com/download/dotnet-framework/net472
- Publicar el IIS en el puerto 80.
- Descargar Win-Acme. Cliente utilizado para la emisión de los certificados de Let’s Encrypt. Enlace al repositorio en Github: https://github.com/PKISharp/win-acme/releases
Pasos previos
Instalar .NET Framework 4.7.2.
La instalación del .NET Framework 4.7.2 es bastante sencilla, simplemente lo descargamos en el idioma correspondiente y luego lo ejecutamos. Tener en cuenta que requiere reinicio del servidor.
Publicar IIS en el puerto 80 para validacion de dominio.
Para realizar la validacion de propiedad del dominio es necesario publicar a Internet el puerto 80 en el IIS y que apunte a nuestro mail server, por ejemplo, mail.midominio.com o en mi caso mail.rflab.tk. Para realizar esto es necesario realizar dos acciones:
-
En nuestro firewall/equipo perimetral habilitar el puerto 80 y redirigirlo internamente a la IP de nuestro servidor Exchange.
-
En el IIS, realizar los siguientes pasos.:
1- Abril la consola del IIS del servidor Exchange.
2- En el panel de Conexiones nos dirigirnos al Default Web Site como se ve en la imagen.
3- En el panel de Acciones (a la derecha) presionamos sobre Enlaces… y nos abrirá una ventana.
4- Como se podrá notar, tenemos seleccionado http en el puerto 80. Hacemos doble clic sobre esa selección para modificarlo.
5- En el campo Nombre de host colocamos el FQDN de nuestro servidor, que siguiendo nuestro ejemplo sería mail.rflab.tk. Esto suponiendo que a nivel de DNS tanto interno como externo ya fueron creados todos los registros con anterioridad y fue realizado el Split DNS en caso de ser necesario.
6- Ejecutar el comando iisreset en una ventana del Símbolo del sistema como administrador para que los cambios se vean reflejados.
Utilización del cliente WIN-ACME
-
Para descargar la ultima version del cliente WIN-ACME, nos dirigimos al enlace proporcionado mas arriba y elegimos la ultima releases disponible. Al momento de realizar esta entrada es el v2.0.6. Hacemos clic sobre la version y encotraremos los archivos de descarga. Específicamente descargaremos el archivo win-acme.v2.0.6.284.zip.
-
Extraemos el contenido del archivo .zip. Para mejor manejo lo haré en una carpeta del disco C.
-
Ejecutamos el archivo wacs.exe. Se nos abrirá una ventana con todas las opciones disponibles. Elegimos primeramente la opción M:Create a new certificate with advanced options.**
-
A continuación debemos elegir el tipo de certificado, la opción que utilizaremos es 4:Manually input host names.
-
Escribimos los host names necesarios, en nuestro caso sería: mail.rflab.tk, autodiscover.rflab.tk.. Usando un dominio "normal" sería mail.midominio.com y autodiscover.midominio.com
-
Nos pregunta por un "nombre para mostrar" para el certificado. Podemos escribir uno a nuestro criterio o presionar Enter para continuar, el cual le agrega un nombre por defecto. Yo pondré mail-rflab
-
A continuación, debemos seleccionar el tipo de validación a realizar. La opción mas rápida y fácil es la que viene por defecto 4: [http-01] Host the validation files from memory (recommended), por lo tanto seleccionamos la opción 4.
-
Luego debemos elegir el tipo de request a utilizar. Utilizamos la opción recomendada 2: Standard RSA key pair.
-
Seleccionar donde se alojarán los certificados. Elegimos a opción 2: Windows Certificate Store.
-
Elegimos la opción 1: Create or update https bindings in IIS sobre tipo de instalación y seguidamente presionamos n para no agregar otro tipo de instalación.
-
Lo siguiente es elegir el sitio dentro del IIS en el cual se instalará el certficado. Seleccionamos la opcion 1: Default Web Site..
-
Nos solicita un correo para notificaciones.
-
Pregunta si queremos abrir el archivo de términos de licencia (PDF). El archivo se encuentra en la carpeta que se crea automáticamente: C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org. Desde allí podemos abrir el archivo directamente, por lo tanto, en este caso seleccionaré N. Luego realiza la consulta si estamos de acuerdo con los términos de licencia, para lo cual elegimos Y.
-
Como comentamos al principio de la entrada, la validez de los certificados de Let’s Encrypt es de 90 días, por lo tanto es necesario renovarlo de forma muy frecuente. Por suerte, el cliente Win-Acme se encarga también de la renovación creando un tarea programada para el caso. En este punto del procedimiento nos pide un usuario con el que se ejecutará esa tarea programada.
-
Culmina el procedimiento.
-
Ahora si abrimos una consola de certificados de equipo (certlm.msc), en la carpeta Hospedaje de sitios web > Certificados encontraremos el certificado recién emitido.
-
El certificado asi como la clave privada además lo podremos encontrar localmente en el servidor en la carpeta C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates.
-
El siguiente paso el importar el certificado al repositorio de certificados del servidor. Para ello primeramente debemos saber la contraseña que se generó de forma automática. Eso lo conseguimos ejecutando nuevamente el wacs.es y seleccionando la opción L: List scheduled renewals.
-
Nos aparecerán todos los certificados que se hayan generado. Lo normal sería que liste un solo certificado, en ese caso eligen la opción 1. Veremos una serie de informaciones, entre ellas el .pfx password, ese es el dato que necesitamos para la exportación. Copiamos la contraseña de la clave privada.
-
Nos dirigimos hasta la carpeta C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates donde se guardan por defecto los certificados una vez creados.
-
Hacemos doble clic sobre el archivo con extensión .pfx. Nos abrirá una ventana de importación. Elegimos Equipo local.
-
En el siguiente apartado presionamos Siguiente.
-
Nos solicitará la constraseña que copiamos anteriormente. Los pegamos en el campo contraseña. Ademas, marcamos la casilla Marcar esta clave como exportable.
-
En Almacen de certificados dejamos seleccioando la opcion " Seleccionar automáticamente… " y presionamos Siguiente.
-
Presionamos Finalizar.
-
Si abrimos la ventana de certificados nuevamente (certlm.msc) y nos dirigimos a la carpeta Personal > Certificados, veremos nuestro certificado recién exportado con el nombre para mostrar, que en nuestro caso es mail-rflab..
Usar el certificado generado
Para poner el funcionamiento el certificado, abrimos la consola de Exchange Control Panel, y nos dirigimos al apartado de Certificados en Servidores. Veremos nuestro certificado.
Hacemos doble clic sobre el mismo. Debemos asegurarnos de marcar las casillas SMTP, IMAP, POP e IIS.
Al guardar los cambios nos aparecerá una advertencia de que se sobrescribirá el certificado SMTP por defecto. Presionamos Si.
Tras eso, nos dirigimos nuevamente al apartado de Enlaces del Default Web Site en la consola del IIS. Veremos que en todos los tipos https están asignados el certificado, excepto en el que no tiene Nombre de host y en Dirección IP contiene un *****. Para el mismo debemos asignar el certificado recién creado, ya que por defecto está marcado el certificado de nombre Microsoft Exchange o algún otro que puedan estar utilizando.
Para que los cambios hagan efecto debemos ejecutar nuevamente el comando iisreset como lo vimos en un paso anterior.
El certificado ya debió haberse aplicado.Para verificar abrimos nuestro navegador, en este caso usaré Google Chrome y escribimos la url para acceder al OWA, que en mi caso es https://mail.rflab.tk/owa. Hacemos clic sobre el candado en la barra de direcciones y presionamos sobre Certificado. Nos mostrará algo parecido a la imagen de abajo.
Como verán, nos indica que el certificado es Emitido por Let’s Encrypt Authority X3 y la validez es de 90 días.
Renovación automática.
Por último, veremos la tarea programada que se crea con el cliente Win-Acme para la renovación automática del certificado.
Abrimos la consola del Programador de tareas de Windows. En ella veremos que se ha creado una tarea con nombre win-acme renew.
La tarea comprueba todos los días la fecha de expiración del certificado y al cumplirse los 55 días de validez del mismo realiza la renovación.