...

*Cube-Host– servicios completos en la nube!!

VPS Windows: instalación y configuración de IIS

Windows VPS: installing and configuring IIS

Instalación de IIS sin componentes innecesarios

A través del administrador del servidor: Agregar roles y características → Basado en roles → Su servidor → Servidor web (IIS).

Seleccione lo mínimo para sitios web estáticos y sencillos:

  • Servidor web → Características HTTP generales: Contenido estático, documento predeterminado, errores HTTP;
  • Integridad y diagnóstico: Registro HTTP;
  • Seguridad: filtrado de solicitudes;
  • Rendimiento: compresión de contenido estático.

Si necesita ASP.NET, añada Desarrollo de aplicaciones (.NET extensible, ASP.NET, ISAPI).

Comandos de PowerShell correspondientes:

  Install-WindowsFeature Web-Server, Web-Common-Http, Web-Default-Doc, Web-Http-Errors, `
  Web-Http-Logging, Web-Filtering, Web-Stat-Compression -IncludeManagementTools
# If necessary:
# Install-WindowsFeature Web-Asp-Net45, Web-Net-Ext45, Web-ISAPI-Ext, Web-ISAPI-Filter  

Compruebe http://localhost: debería aparecer la página de inicio de IIS.

Genere una CSR (solicitud de certificado) directamente en IIS

Abra el administrador de IIS (InetMgr.exe) → seleccione su servidor → Certificados de servidor.

1 Windows VPS

En Acciones, haga clic en Crear solicitud de certificado… y rellene los campos correspondientes al nombre distintivo:

Nombre común — FQDN del sitio web (por ejemplo, example.ru o *.example.ru para un carácter genérico);

— Organización/OU/Ciudad/Estado/País — de acuerdo con los requisitos de la autoridad de certificación (CA).

2 Windows VPS

Seleccione un proveedor de cifrado y una longitud de clave (se recomienda Microsoft RSA SChannel y 2048+ bits).

3 Windows VPS

Guarde la CSR en un archivo; comienza con —–BEGIN NEW CERTIFICATE REQUEST—–.

4 Windows VPS

Envíe la CSR a su autoridad de certificación (comercial o interna de la empresa). Si utiliza AD CS, descargue el certificado emitido desde el portal web de la autoridad de certificación.

5 Windows VPS

Alternativa para las pruebas: certificado autofirmado a través de PowerShell New-SelfSignedCertificate. Adecuado para entornos de prueba, pero no para sitios de producción.

Importación de un certificado en IIS (CER/PFX) y matices del formato

Vuelva a Certificados de servidor y haga clic en Finalizar solicitud de certificado…: indique el CER emitido.

6 Windows VPS

Si dispone de CRT + KEY, conviértalos primero a PFX (un contenedor combinado con una clave privada). Lo más sencillo es utilizar openssl:

  openssl pkcs12 -export -out target.pfx -inkey source.key -in source.crt  

O convierta temporalmente CRT → CER (Base-64 X.509) directamente en Windows mediante «Exportar»:

8 Windows VPS

Si importa PFX, es mejor hacerlo a través del complemento Certificados (equipo local) → Personal. Microsoft proporciona instrucciones detalladas sobre cómo importar y asignar un certificado de sitio en su documentación oficial.

Una vez completada la solicitud del certificado, el nuevo certificado aparecerá en la lista:

9 Windows VPS

Vincular HTTPS al sitio web (enlaces)

Vaya a Sitios web, seleccione el sitio web → Editar enlaces…

10 Windows VPS

Añadir un enlace:

  • Tipo: https
  • Dirección IP: Todas las direcciones no asignadas (o específicas)
  • Puerto: 443
  • Nombre de host: El nombre de dominio completo (FQDN) de su sitio web
  • Certificado SSL: Seleccione el certificado importado

Para varios sitios web HTTPS en una sola dirección IP, active SNI (Require Server Name Indication).

11 Windows VPS

Reinicie el sitio web (o todo el IIS).

12 Windows VPS

Compruébelo en su navegador: el candado y el certificado válido para el dominio.

13 Windows VPS

Es recomendable activar inmediatamente la redirección HTTP → HTTPS (reescritura de URL); en winitpro hay disponible un análisis separado sobre este tema.

Abra los puertos y realice pruebas desde el exterior

No olvide abrir los puertos 80/443 en el firewall interno de Windows y en el firewall/ACL externo del proveedor Windows VPS:

  New-NetFirewallRule -DisplayName "HTTP (80)"  -Direction Inbound -Protocol TCP -LocalPort 80  -Action Allow
New-NetFirewallRule -DisplayName "HTTPS (443)" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow  

Verificación desde el ordenador cliente:

  Test-NetConnection example.ru -Port 80
Test-NetConnection example.ru -Port 443  

TcpTestSucceeded: True – Conexión y disponibilidad confirmadas.

Errores comunes y soluciones rápidas

  • El certificado no aparece en la lista desplegable «Conexiones»: se ha importado en «Usuario actual» en lugar de «Equipo local → Personal» o sin clave privada. Importe PFX en «Equipo local».
  • NET::ERR_CERT_COMMON_NAME_INVALID: CN/SAN no coincide con el dominio en el nombre de host; vuelva a enviarlo con el FQDN correcto.
  • Solo se abre HTTP: no hay ninguna conexión HTTPS o 443 cerrada en el firewall externo.
  • Error al importar CRT: convierta a CER o PFX (véase más arriba).
  • Varios sitios web en una sola dirección IP: active SNI en el enlace y utilice nombres de host diferentes.

Guía rápida: IIS + sitio web + HTTPS en pocos minutos

  # 1) Installing IIS with basic modules
Install-WindowsFeature Web-Server, Web-Common-Http, Web-Default-Doc, Web-Http-Errors, `
  Web-Http-Logging, Web-Filtering, Web-Stat-Compression -IncludeManagementTools

# 2) Site catalog
New-Item -ItemType Directory -Path "D:\sites\example.ru\wwwroot" -Force | Out-Null

# 3) Website on HTTP
Import-Module WebAdministration
New-Website -Name "example.ru" -Port 80 -PhysicalPath "D:\sites\example.ru\wwwroot" -IPAddress "*" -HostHeader "example.ru"

# 4) Import certificate (example for PFX; specify your path/password)
# $pwd = ConvertTo-SecureString "PFXpassword" -AsPlainText -Force
# Import-PfxCertificate -FilePath "C:\certs\example.pfx" -CertStoreLocation Cert:\LocalMachine\My -Password $pwd
# $thumb = (Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -like "*CN=example.ru*"}).Thumbprint

# 5) HTTPS binding (via netsh http)
# New-WebBinding -Name "example.ru" -Protocol https -Port 443 -HostHeader "example.ru"
# netsh http add sslcert hostnameport=example.ru:443 certhash=$thumb appid="{00112233-4455-6677-8899-AABBCCDDEEFF}"

# 6) Firewall
New-NetFirewallRule -DisplayName "HTTP (80)"  -Direction Inbound -Protocol TCP -LocalPort 80  -Action Allow
New-NetFirewallRule -DisplayName "HTTPS (443)" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow