Redirigir el tráfico HTTP a HTTPS en Nginx es una práctica esencial para mejorar la seguridad y asegurar que todos los usuarios accedan a tu sitio web de forma segura. A continuación, te explico cómo configurarlo de manera sencilla.
1. Nginx instalado: Asegúrate de que Nginx está instalado y funcionando en tu servidor.
2. Certificado SSL: Deberías tener un certificado SSL válido configurado en tu servidor. Puedes usar Let’s Encrypt para obtener uno gratis.
El archivo de configuración puede estar ubicado en /etc/nginx/sites-available/
o /etc/nginx/conf.d/
. Por ejemplo:
sudo nano /etc/nginx/sites-available/tu_sitio
Asegúrate de agregar un bloque para redirigir todo el tráfico HTTP al puerto HTTPS. El bloque básico sería así:
server {
listen 80;
server_name tu_dominio.com www.tu_dominio.com;
return 301 https://$host$request_uri;
}
listen 80;
: Indica que el servidor escucha en el puerto HTTP.
return 301
: Redirige permanentemente al protocolo HTTPS.
$host$request_uri
: Mantiene el dominio y la ruta original del usuario.
Asegúrate de que el bloque HTTPS esté configurado correctamente. Debería lucir similar a esto:
server {
listen 443 ssl;
server_name tu_dominio.com www.tu_dominio.com;
ssl_certificate /ruta/a/tu_certificado.crt;
ssl_certificate_key /ruta/a/tu_llave.key;
location / {
root /var/www/tu_sitio;
index index.html index.htm;
}
}
Antes de reiniciar Nginx, verifica que no haya errores en la configuración:
sudo nginx -t
Si la verificación fue exitosa, reinicia Nginx para aplicar los cambios:
sudo systemctl restart nginx
Abre un navegador y accede a tu sitio usando http://tu_dominio.com
. Deberías ser redirigido automáticamente a https://tu_dominio.com
.
Jorge García
Fullstack developer