Nginx redirecciona de HTTP a HTTPS en Ubuntu 20.04 LTS

1 mar 2021 2 min di lettura
Nginx redirecciona de HTTP a HTTPS en Ubuntu 20.04 LTS
Indice dei contenuti

Introducción

Cuando se instala un certificado SSL en el servidor, el sitio web no está disponible a través de una conexión HTTPS segura de forma predeterminada. Debe agregar " HTTPS " a una URL cada vez que necesite conectarse de forma segura. La mejor manera de lograr la máxima seguridad para los visitantes del sitio web es habilitar un redireccionamiento automático de HTTP a HTTPS.

Este tutorial le mostrará cómo redirigir una URL de HTTP a HTTPS, por ejemplo http://example.it a https://example.it, con Apache en Ubuntu 20.04 LTS.

Prerrequisitos

Este tutorial asume que tiene privilegios de superusuario, es decir, sudo o root, en el servidor que ejecuta Nginx. Si aún no lo ha configurado, siga este tutorial: Configuración inicial de Ubuntu 20.04 LTS.

Se supone que Nginx está instalado. Si no está instalado, siga este tutorial: Cómo instalar Linux Nginx MySQL PHP (LEMP) en Ubuntu 20.04 LTS o Cómo instalar Nginx en Ubuntu 20.04 LTS.

Para instalar certificados SSL (HTTPS) en Nginx, lea este tutorial Cómo instalar Let's Encrypt para Nginx en Ubuntu 20.04 LTS.

Configurar el redireccionamiento de HTTP a HTTPS

Si usa certificados SSL, entonces tiene una conexión activa con el protocolo HTTPS y desea redirigir de www a non-www (o viceversa) y de HTTP a HTTPS continúe leyendo.

Abra el archivo de configuración de Nginx:

sudo nano /etc/nginx/sites-available/default

Agregue un nuevo bloque de servidor al comienzo del archivo para administrar las conexiones HTTP y redirigir a HTTPS. Modifique el parámetro server_name ingresando su nombre de dominio tanto sin www como con www, también modifique el parámetro de retorno configurando la URL preferida, en nuestro caso la versión sin www, así:

server {
 listen 80;
 listen [::]:80;
 server_name TUO_DOMINIO.it www.TUO_DOMINIO.it;
 return 301 https://TUO_DOMINIO.it$request_uri;
 }

Guarde y cierre el archivo presionando CTRL + X, seguido de Y para guardar los cambios y luego ENTER si está usando nano.

Cambie el bloque del servidor principal. Cambie el parámetro Listen al puerto 443 y agregue el parámetro ssl. Incluya la ruta a sus certificados, si aún no están incluidos, y al final del bloque agregue una condición if que establezca una redirección automática a su URL preferida, en este caso sin www. Si prefiere crear un no-www a www redirección, revertir los parámetros nombre_servidor y retorno en ambos bloques de servidor.

server {
 listen [::]:443 ssl ipv6only=on;
 listen 443 ssl;
 root /var/www/html;
 index index.php index.html index.htm index.nginx-debian.html;
 server_name TUO_DOMINIO.it www.TUO_DOMINIO.it;

 location /{
 try_files $uri $uri/=404;
 }


 #include your certificates...


 if ($host = 'www.TUO_DOMINIO.it') {
 return 301 https://TUO_DOMINIO.it$request_uri;
 }

 }

Entonces, la configuración final con redirección de www a non-www con https habilitado es la siguiente:

server {
 listen 80;
 listen [::]:80;
 server_name TUO_DOMINIO.it www.TUO_DOMINIO.it;
 return 301 https://TUO_DOMINIO.it$request_uri;
 }

 server {
 listen [::]:443 ssl ipv6only=on;
 listen 443 ssl;
 root /var/www/html;
 index index.php index.html index.htm index.nginx-debian.html;
 server_name TUO_DOMINIO.it www.TUO_DOMINIO.it;

 location /{
 try_files $uri $uri/=404;
 }


 #include your certificates...


 if ($host = 'www.TUO_DOMINIO.it') {
 return 301 https://TUO_DOMINIO.it$request_uri;
 }

 }

Reinicie Nginx:

sudo service nginx restart

Los cambios deberían surtir efecto de inmediato.

Conclusión

En este tutorial aprendimos cómo configurar reglas de redireccionamiento para Nginx de www a non-www y viceversa, y de HTTP a HTTP.

¡Eso es todo! La redirección de Nginx ahora está configurada correctamente.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.