Crear e instalar certificado SSL autofirmado en IIS
Windows Server
- Por Programador ASP clásico /
- 23/05/2025 @ 14:09:59 /
- 1118 visitas
Tener un entorno de desarrollo seguro es fundamental, incluso cuando trabajamos con aplicaciones antiguas como las desarrolladas en ASP Clásico. Uno de los aspectos más importantes es configurar HTTPS utilizando certificados SSL, aunque sea un entorno local. Este artículo te mostrará paso a paso cómo instalar un certificado SSL autofirmado en IIS para un sitio web que corre sobre una IP local, utilizando Windows Server y ASP Clásico.
¿Por qué usar un certificado SSL autofirmado en desarrollo?
El uso de un certificado SSL en un entorno de desarrollo tiene beneficios reales:
Simula el entorno de producción.
Permite probar cookies seguras y cabeceras HTTPS.
Evita advertencias de navegadores cuando se hacen pruebas con AJAX y APIs.
Aunque el certificado autofirmado no sea válido públicamente, es suficiente para un entorno de pruebas.
Requisitos previos para generar un certificado autofirmado
Antes de generar un certificado, asegúrate de cumplir con lo siguiente:
Tienes acceso como administrador al servidor con Windows Server (2019 o superior).
Tienes habilitado IIS y un sitio corriendo en una IP local (por ejemplo: 10.1.1.100).
PowerShell está disponible y funcionando correctamente.
Leer certificados del servidor
Primero, asegúrate de que estás ejecutando PowerShell como administrador. Luego prueba este comando solo, para ver si puedes leer los certificados en general:
Get-ChildItem Cert:\LocalMachine\My
Eso debería listar todos los certificados del almacén "Personal" del equipo. Si eso tampoco muestra nada, puede que estés usando una sesión sin permisos o no se haya generado ninguno.
Si obtienes valores, eso quiere decir que sí tienes certificados generados en ese almacén. Ahora, lo importante es identificar cuál de ellos es el que acabamos de crear para la IP 10.10.1.100
.
Vamos a simplificarlo. Ejecuta este comando para ver solo los Subjects:
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject
Eso va a mostrarte una lista de los nombres comunes (CN) de los certificados. Busca uno que diga algo como CN=10.1.1.100
.
Si no aparece nada, entonces el certificado no se generó, aunque no dio error. A veces pasa si PowerShell no está con todos los permisos necesarios, o si la IP no está bien procesada como SAN.
Vamos a forzar el proceso con un comando más limpio. Prueba este exactamente como está:
New-SelfSignedCertificate -Subject "CN=localhost" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(5) -TextExtension @("2.5.29.17={text}ipaddress=10.1.1.100")
Este comando:
Usa
localhost
como nombre común (eso no importa tanto).Pone la IP
10.1.1.100
como SAN.Lo guarda en el lugar correcto.
Después de correrlo, vuelve a hacer:
Get-ChildItem Cert:\LocalMachine\My | Select-Object Subject
Aviso: el certificado no se sobreescribe ni borra el que ya existe, porque cada certificado es único internamente (por su huella digital y clave privada), aunque tengan el mismo CN.
Así que no hay problema si ya tienes un CN=localhost
, puedes crear otro más con el mismo nombre.
Cuando termines de generarlo, solo asegúrate de seleccionar el nuevo en IIS por su fecha de creación o su huella digital, no por el CN solamente.
Agregar el certificado a la Raíz de Confianza del sistema
Ahora vamos con los siguientes pasos para dejarlo funcionando:
Abre
certlm.msc
en el servidor (escribe eso en el menú inicio y presiona Enter).Ve a:
Certificados (equipo local) > Personal > Certificados
Busca el que diga CN=localhost con la fecha de creación más reciente (o usa el "Huelladigital" si te diste cuenta cuál salió en PowerShell).
Haz clic derecho > Copiar.
Pégalo en:
Entidades de certificación raíz de confianza > Certificados
Eso lo hace confiable para IIS y para exportarlo.
Asignar el certificado al sitio en IIS
Abre el Administrador de IIS.
Selecciona tu sitio web.
Clic derecho > "Editar Enlaces (Bindings)".
Agrega o edita un enlace de tipo
https
, y elige el nuevo certificado (CN=localhost
).Asegúrate de que el puerto 443 esté disponible y se esté utilizando.
Exportar el certificado e instalarlo en la PC cliente
Desde
certlm.msc
, clic derecho sobre el certificado > Todas las tareas > Exportar.Elige exportar sin clave privada.
Selecciona formato DER binario (.cer).
Copia el archivo
.cer
a la PC cliente.En la PC cliente:
Ejecuta
certmgr.msc
.Importa el
.cer
enEntidades de certificación raíz de confianza
.
Verificar que Chrome y Firefox aceptan el certificado
Chrome (usa certificados del sistema):
Una vez importado correctamente, Chrome debería abrir
https://10.1.1.100
sin advertencias.Si persisten errores, prueba limpiar caché o reiniciar el navegador.
Firefox (usa su propio almacén):
Abre
about:preferences
.Ir a Privacidad y Seguridad > Certificados > Ver certificados.
Importa el
.cer
en la pestaña Autoridades.Marca "Confiar en esta CA para identificar sitios web".
tags: certificado SSL autofirmado IIS, ASP Clásico, HTTPS local, PowerShell, Windows Server, desarrollo seguro, SAN IP local, SSL autosigned
En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por ASP TEAM. Compartimos recursos útiles de buena fe para formar una base de conocimiento en el desarrollo de aplicaciones en ASP Clásico.