Перенаправление Nginx с HTTP на HTTPS в Ubuntu 20.04 LTS

12 set 2022 2 min di lettura
Перенаправление Nginx с HTTP на HTTPS в Ubuntu 20.04 LTS
Indice dei contenuti

Введение

Если на сервере установлен SSL-сертификат, по умолчанию веб-сайт недоступен через защищенное HTTPS-соединение. Вам нужно добавлять « HTTPS » к URL-адресу каждый раз, когда вам нужно безопасно подключиться. Лучший способ обеспечить максимальную безопасность посетителей веб-сайта — включить автоматическое перенаправление с HTTP на HTTPS.

В этом руководстве показано, как перенаправить URL-адрес с HTTP на HTTPS, например, с http://example.it на https://example.it, с помощью Apache в Ubuntu 20.04 LTS.

Предпосылки

В этом руководстве предполагается, что у вас есть привилегии суперпользователя, то есть sudo или root, на сервере с Nginx. Если вы еще не настроили его, следуйте этому руководству: Ubuntu 20.04 LTS Initial Setup.

Предполагается, что Nginx установлен. Если он не установлен, следуйте этому руководству: Как установить Linux Nginx MySQL PHP (LEMP) в Ubuntu 20.04 LTS или Как установить Nginx в Ubuntu 20.04 LTS.

Чтобы установить сертификаты SSL (HTTPS) на Nginx, прочитайте это руководство Как установить Let's Encrypt для Nginx на Ubuntu 20.04 LTS.

Настроить перенаправление с HTTP на HTTPS

Если вы используете SSL-сертификаты, то у вас есть активное соединение с протоколом HTTPS и вы хотите перенаправить с www на не-www (или наоборот) и с HTTP на HTTPS.

Откройте файл конфигурации Nginx:

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

Добавить новый блок сервера в начало файла для управления HTTP-соединениями и перенаправления на HTTPS. Измените параметр server_name, указав свое доменное имя как без www, так и с www, также измените возвращаемый параметр, указав предпочтительный URL-адрес, в нашем случае версию без www, например:

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

Сохраните и закройте файл, нажав CTRL + X, затем Y, чтобы сохранить изменения, а затем ENTER, если вы используете nano.

Измените основной серверный блок. Измените параметр Listen на порт 443 и добавьте параметр ssl. Включите путь к вашим сертификатам, если они еще не включены, и в конце блока добавьте условие if, которое устанавливает автоматическое перенаправление на ваш предпочтительный URL-адрес, в данном случае без www. Если вы предпочитаете создать перенаправление без www на www, поменяйте местами server_name и return параметры в обоих блоках сервера.

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;
 }

 }

Таким образом, окончательная конфигурация с перенаправлением с www на не-www с включенным https выглядит следующим образом:

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;
 }

 }

Перезапустите Nginx:

sudo service nginx restart

Изменения должны вступить в силу немедленно.

Вывод

В этом руководстве мы узнали, как настроить правила перенаправления для Nginx с www на не-www и наоборот, а также для HTTP на HTTP.

Это все! Перенаправление Nginx теперь настроено правильно.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.