Instalar certificado SSL en nginx en Windows Server
Linux
- Por Programador ASP clásico /
- 09/09/2025 @ 12:25:42 /
- 1034 visitas
1. Generar el CSR (Certificate Signing Request)
Para esto necesitas OpenSSL (se instala aparte en Windows o viene con Git Bash, WSL, etc.).
openssl req -new -newkey rsa:2048 -nodes -keyout dominio.key -out dominio.csr
dominio.key
→ tu clave privada (guárdala bien, nunca la compartas).dominio.csr
→ el archivo CSR que enviarás a la Autoridad Certificadora (CA).
Durante la generación te pedirá datos:
Country Name (C)
→ código de país (ej: MX).State (ST)
→ estado/provincia.Locality (L)
→ ciudad.Organization (O)
→ nombre de la empresa (o personal).Organizational Unit (OU)
→ opcional.Common Name (CN)
→ tu dominio tyc.dominio.comEmail Address
→ tu correo.
2. Enviar el CSR a la CA
Envías el
.csr
a la entidad certificadora (ejemplo: Verisign, DigiCert, Sectigo, etc.).Te devolverán uno o varios archivos:
certificado principal (
dominio.crt
o.cer
).certificados intermedios/CA bundle (a veces en un archivo aparte).
3. Preparar los archivos para Nginx
Crea una carpeta (ejemplo: C:\nginx\certs
) y coloca dentro:
dominio.key
dominio.crt
ca_bundle.crt (si la CA lo entrega)
Si te dieron varios .crt
, normalmente se
type dominio.crt ca_bundle.crt > fullchain.crt
Ahora tendrás:
Clave privada:
dominio.key
Certificado completo:
fullchain.crt
4. Configurar Nginx
En tu nginx.conf
, dentro del bloque server
:
# Archivo nginx.conf completo para Windows con HTTPS en puerto 444
worker_processes 1; # Solo un worker, tráfico bajo.
events {
worker_connections 1024; # Cada worker puede manejar hasta 1024 conexiones simultáneas.
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;
error_log logs/error.log;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 600; # Conexiones abiertas máximo 10 minutos
#gzip on; # Opcional: compresión
################################################################
# BLOQUE HTTPS
################################################################
server {
listen 444 ssl;
server_name sub1.dominio.com www.sub1.dominio.com;
# Certificados SSL
ssl_certificate C:/nginx-1.28.0/certs/fullchain.crt;
ssl_certificate_key C:/nginx-1.28.0/certs/sub1_dominio_com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Reverse proxy
location / {
proxy_pass http://127.0.0.1:5000;
# Headers para proxy
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
# Buffers
proxy_buffers 16 32k;
proxy_buffer_size 64k;
}
# Páginas de error
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
5. Probar y reiniciar Nginx
Verifica la configuración:
nginx -t
(si usas Windows, abre cmd
en la carpeta de Nginx y ejecuta eso).
Reinicia Nginx:
nginx -s reload
Con esto, Nginx servirá tu sitio en https://tyc.dominio.com
General CSR personalizado
[req]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn
[dn]
C = MX
ST = CDMX
L = Ciudad de México
O = Company ASP
OU = IT
CN = sub1.dominio.com
[req_ext]
subjectAltName = @alt_names
[alt_names]
DNS.1 = sub1.dominio.com
DNS.2 = www.sub1.dominio.com
Y luego generas el CSR:
openssl req -new -nodes -out sub1_dominio_com.csr -newkey rsa:2048 -keyout sub1_dominio_com.key -config openssl.cnf
Así la CA te dará un certificado válido para los dos.
Después, en Nginx o IIS, solo tienes que usar ese mismo .crt
y .key
.
Probar certificado SSL en nginx:
curl -vk https://sub1.dominio.com:444
tags: openssl, csr, nginx windows, https, ssl, certificado digital, fullchain, key, crt, configuración nginx, reverse proxy, puerto 444, puerto 443, iis, windows server
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.