Die modernen Trends im Internet schreiben die Verwendung des sicheren Kommunikationsprotokolls https vor. Bei der Umstellung ist es daher wichtig, dass der gesamte Datenverkehr, der über den http-Port erfolgt, automatisch auf https umgeleitet wird. Dies ist eine wichtige Voraussetzung nicht nur für Websites, die einen Teil des Datenverkehrs verlieren könnten, sondern auch für die Benutzer, damit niemand eine ungesicherte Verbindung unterbrechen kann. Als Nächstes sehen wir uns an, wie man Nginx für die Umleitung von http auf https konfiguriert.
Es empfiehlt sich, eine Umleitung mit dem Statuscode 301 zu verwenden, um Suchmaschinen oder Browsern mitzuteilen, dass der aktuelle Link aktualisiert wurde und in ihrer Datenbank, z. B. in den Browser-Lesezeichen, aktualisiert werden sollte. Wenn wir die Konfigurationsdatei öffnen, können wir zwei Abschnitte Server, für https-Site und http-Site finden. Im http-Abschnitt leiten Sie einfach alle Anfragen mit der Return-Anweisung auf https um, und im zweiten Abschnitt verarbeiten Sie alles. Zum Beispiel der erste Abschnitt:
server {
server_name losst.ru www.losst.ru;
charset off;
index index.php;
ssi on;
return 301 https://$host:443$request_uri;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :80 default_server;
...
}
Der zweite Abschnitt verfolgt die Anfragen über den Port 433:
server {
server_name losst.ru www.losst.ru;
ssl on;
ssl_certificate "/var/www/losst/losst.ru_le2.crtca";
ssl_certificate_key "/var/www/losst/losst.ru_le2.key";
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000;";
charset off;
index index.php;
set $root_path /var/www/losst/data/www/losst.ru;
root $root_path;
listen :443 default_server;
...
}
Wie Sie sehen können, ist die Syntax in diesem Fall sehr einfach und klar. Die Return-Anweisung ermöglicht es uns, die erforderlichen Antwortcodes des Servers zurückzugeben. Wir geben also den 301-Code, die permanente Weiterleitung und die URL zurück, an die wir den Benutzer weiterleiten werden. Neben der return-Anweisung können Sie auch die rewrite-Anweisung verwenden, die genau die gleichen Aktionen ausführt:
rewrite ^/(.*)$ https://losst.com/$1 permanent;
In der Syntax der regulären Ausdrücke können Sie anstelle von return 301 die Domain hinzufügen. Sie können eine solche Konstruktion auch ohne einen separaten Serverblock verwenden:
if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}
Als nächstes müssen Sie die Datei speichern und die Nginx-Konfiguration überprüfen. Zu diesem Zweck wird sie verwendet:
$ sudo nginx -t
Wenn alles in Ordnung ist, starten Sie Nginx neu:
$ sudo systemctl restart nginx
Prüfen Sie, welche Art von Serverantwort Sie mit curl erhalten:
$ curl -I losst.ru
Oder lassen Sie das Dienstprogramm dem vollständigen Umleitungspfad folgen:
$ curl ILa losst.ru
Wie Sie sehen können, ist die Konfiguration einer Umleitung zu https Nginx recht einfach, die Arbeit wird durch das Hinzufügen einer Zeile in die Konfigurationsdatei erledigt, der Rest sind zusätzliche Parameter.