Cómo configurar certificados SSL (Let’s Encrypt) gratuitos en Windows Server

Configurar certificados Let’s Encrypt en Windows puede ser un poco complicado, especialmente si se desea que sea casi automático. Los principales problemas suelen ser emitir el certificado, lograr que se vincule correctamente en IIS y luego mantenerlo renovado sin demasiados problemas manuales. Porque, por supuesto, Windows tiene que complicarlo más de lo necesario. Esta guía pretende aclarar algunos de estos problemas y guiar el proceso habitual, con numerosos ajustes y consejos basados ​​en la experiencia práctica.

Cómo generar e instalar un certificado Let’s Encrypt en Windows IIS

Utilice WACS (Windows ACME Simple) para la automatización

  • Primero, descarga la última versión del cliente WACS desde GitHub. Busca el archivo zip más reciente, como win-acme.v2.2.9.1701.x64.pluggable.zip. Extráelo en un lugar accesible; normalmente lo guardo directamente en Archivos de Programa o en una carpeta específica para simplificar.
  • Ejecútalo wacs.execomo administrador. Probablemente necesites hacer esto porque WACS necesita configurar los certificados del sistema y vincular certificados SSL en IIS.
  • Asegúrate de que tu servidor tenga. NET Framework 4.7.2 o superior; a veces, WACS da problemas si no lo tiene. Puedes descargarlo del sitio web de Microsoft.
  • El asistente se inicia y te pregunta qué quieres hacer. Para una configuración rápida, selecciona N: — Crear certificado (configuración predeterminada). A veces, en una instalación nueva o con configuraciones de IIS inusuales, recibirás un mensaje como «no se encontraron sitios web».No sé por qué ocurre esto: quizás IIS no registró todos los sitios o las vinculaciones de host están dañadas. Si esto ocurre, abre el Administrador de IIS ( inetmgr ), revisa las vinculaciones de sitio y asegúrate de que el sitio tenga un nombre de host definido. Parece obvio, pero he visto este error en todo.
  • Después de esto, seleccione el número de sitio (o nombre del sitio) de la lista, luego presione Apara seleccionar todos los enlaces y confirme con Y.
  • Se le solicitará que acepte los términos de Let’s Encrypt. Hágalo.
  • A continuación, introduce tu correo electrónico. Esto es importante para las notificaciones de renovación. Si gestionas varios dominios, separa los correos electrónicos con comas.
  • Ahora, la parte crucial: la validación. El valor predeterminado es HTTP-01, que WACS realizará activando un pequeño servidor web en el puerto 80. Asegúrese de que el puerto 80 esté abierto en su firewall; no hay excepciones si desea que funcione correctamente. Si no puede usar el puerto 80, la validación DNS es una opción ( opciones completas en WACS).
  • WACS generará y recuperará el certificado, lo instalará en el almacén del sistema y lo vinculará a IIS.¡Perfecto! Los archivos del certificado (normalmente *.pem y *.pfx ) se almacenan de forma segura en formato C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates.

Consejo: si WACS indica que no se encuentran sitios web, revise las vinculaciones de IIS. Suele deberse a un problema de nombre de host o de vinculación. A veces, reiniciar IIS ayuda ( iisreset) si sigue sin ver los sitios después de los cambios.

Cómo funciona realmente la renovación y por qué es importante

  • Los certificados de Let’s Encrypt duran 90 días, pero WACS configura una tarea programada ( win-acme renew ) que se ejecuta todos los días para ver si es necesaria la renovación.
  • El comando de renovación se ve así wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/". Es automático, pero asegúrese de que esta tarea no esté deshabilitada; en algunas configuraciones, el Programador de tareas de Windows necesita un pequeño ajuste.
  • Consejo: revisa las propiedades de la tarea si la renovación no se realiza. Además, en algunos servidores, la renovación podría fallar si el puerto 80 está bloqueado o si IIS no lo libera rápidamente. En esos casos, la renovación podría no realizarse o requerir una expulsión manual.

Redirigir HTTP a HTTPS: Haciéndolo sin problemas

Una vez instalado el certificado, no conviene mantener a los usuarios en HTTP; eso solo generaría problemas. Utilice el módulo de reescritura de URL de IIS para redirigir todo el tráfico HTTP a HTTPS. Para configurarlo, cree una regla sencilla que coincida con las solicitudes entrantes en el puerto 80 y las redirija al 443. Hay muchos tutoriales disponibles, pero vale la pena hacerlo, ya que las conexiones HTTP obsoletas parecen inseguras y confunden a los usuarios.

Uso de Let’s Encrypt para RDS Gateway y acceso web

Si te gusta RDS, configurar un certificado de confianza requiere algo de trabajo adicional, pero es factible. Emite el certificado para tu interfaz web de RDS mediante WACS, luego expórtalo y vincúlalo manualmente en la configuración de RDS. Normalmente, exportarás un archivo .pfx y lo agregarás manualmente mediante las herramientas de RDS. Mejor aún, automatiza la importación con scripts de PowerShell como los del repositorio de GitHub. Pero ten cuidado: deberás actualizar periódicamente la huella digital o automatizar ese proceso, ya que el certificado cambia cada 60 a 90 días.

En algunos casos, programar la importación y reiniciar los servicios RDS (como Restart-Service TSGateway) justo después de la renovación puede ahorrar muchos problemas. Solo asegúrese de que su tarea programada lo gestione automáticamente; de ​​lo contrario, la conexión RDS emitirá un aviso de «certificado inválido».

Todo esto suena un poco engorroso, pero una vez configurado, se trata principalmente de comprobar que la renovación se realiza sin problemas. He visto configuraciones en las que una simple tarea programada soluciona el problema del certificado definitivamente, y otras en las que las peculiaridades de la red o de IIS dificultan el proceso. No sé por qué a veces funciona; funciona en algunos entornos, no tanto en otros.

Cruzo los dedos para que esto ayude a alguien a ahorrarse horas de trabajo. Solo recuerda mantener abierto el puerto 80 y supervisar tus registros de renovación; eso me salvó más de una vez, lo cual fue bastante satisfactorio.

Resumen

  • Descargue y ejecute WACS como administrador, seleccione su sitio IIS y siga el asistente.
  • Asegúrese de que el puerto 80 esté abierto para la validación HTTP.
  • Los certificados se almacenan en Certificatesuna carpeta; verifique el enlace de IIS en línea.
  • Verifique la tarea de renovación programada y pruebe la renovación manualmente en ocasiones.
  • Para RDS, utilice scripts para importar certificados y reiniciar los servicios automáticamente.

Resumen

Conseguir que Let’s Encrypt funcione en Windows no es precisamente fácil, pero con WACS tampoco es complicado. El proceso principal es la configuración inicial y asegurarse de que los puertos 80/443 sean accesibles y estén correctamente configurados. Una vez hecho esto, se ejecuta prácticamente solo, hasta que deja de hacerlo, pero entonces solo es cuestión de ejecutar una renovación manual o solucionar problemas del firewall. Con suerte, esto le ahorrará algunas horas de resolución de problemas.