SSLIISLet's Encrypt8 min de lectura

Instalar certificado SSL en IIS

Instalá un certificado SSL gratuito de Let's Encrypt en IIS usando win-acme.


Usá win-acme para obtener certificados SSL gratuitos de Let's Encrypt y configurarlos automáticamente en IIS.

Requisitos previos

  • IIS instalado con un sitio configurado
  • Dominio apuntando a la IP de tu VPS (registro A en DNS)
  • Puerto 80 abierto (para validación HTTP)

Paso 1 — Descargar win-acme

powershell
New-Item -Path "C:\win-acme" -ItemType Directory -Force
Invoke-WebRequest -Uri "https://github.com/win-acme/win-acme/releases/download/v2.2.9.1701/win-acme.v2.2.9.1701.x64.pluggable.zip" -OutFile "C:\win-acme\win-acme.zip"
Expand-Archive -Path "C:\win-acme\win-acme.zip" -DestinationPath "C:\win-acme" -Force

Paso 2 — Ejecutar win-acme

powershell
cd C:\win-acme
.\wacs.exe

Seguí el asistente interactivo:

  1. Seleccioná N (Create certificate with default settings)
  2. Elegí el sitio de IIS de la lista
  3. Confirmá el dominio
  4. Ingresá tu email para notificaciones
  5. Aceptá los términos de Let's Encrypt

Win-acme configura automáticamente:

  • El certificado SSL en IIS
  • El binding HTTPS en el puerto 443
  • Una tarea programada para renovación automática

Paso 3 — Verificar

Visitá https://midominio.com y verificá el candado.

Desde PowerShell:

powershell
Get-IISSiteBinding -Name "MiDominio" | Format-Table Protocol, BindingInformation

Paso 4 — Forzar HTTPS (redirección)

Instalá URL Rewrite Module y agregá en web.config:

xml
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Renovación automática

Win-acme crea una tarea programada que renueva el certificado antes de que expire (cada 60 días). Verificá:

powershell
Get-ScheduledTask -TaskName "win-acme*"

Renovación manual

powershell
C:\win-acme\wacs.exe --renew --force

Solución de problemas

  • Error de validación: verificá que el puerto 80 esté abierto y el dominio apunte a tu IP
  • Binding no se crea: verificá que IIS tenga el módulo de certificados habilitado
  • Los logs están en C:\win-acme\Logs\

¿Te resultó útil esta guía?