Modes de paiement Abuse

Comment rediriger de http à https Nginx

22.03.2021, 19:19

Les tendances modernes de l'internet imposent l'utilisation du protocole de communication sécurisé https. Lors de la migration, il est donc important que tout le trafic qui arrive sur le port http soit automatiquement redirigé vers https. C'est une condition importante non seulement pour les sites qui peuvent perdre du trafic, mais aussi pour les utilisateurs, afin que personne ne puisse rompre une connexion non sécurisée. Voyons maintenant comment configurer la redirection de http vers https de Nginx.

Comment rediriger de http à https Nginx

Nous recommandons d'utiliser la redirection avec le code de statut 301, qui indique aux moteurs de recherche ou aux navigateurs que le lien actuel a été mis à jour et qu'il doit être mis à jour dans sa base de données, par exemple, les signets du navigateur. Si nous ouvrons le fichier de configuration, nous pouvons trouver deux sections serveur, pour le site https et le site http. Dans la section http, vous redirigez simplement toutes les demandes vers https en utilisant l'instruction de retour, et dans la seconde section, vous traitez tout. Par exemple, la première section :

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

Comment rediriger de http à https Nginx

La seconde section suit les requêtes sur le 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;
...
}

Comme vous pouvez le constater, la syntaxe dans ce cas est très simple et claire. L'instruction return nous permet donc de renvoyer les codes de réponse du serveur nécessaires. Ainsi, nous renvoyons le code 301, la redirection permanente et l'URL vers laquelle nous allons rediriger l'utilisateur. En plus de la directive return, vous pouvez utiliser l'instruction rewrite, qui effectue exactement les mêmes actions :

rewrite ^/(.*)$ https://losst.com/$1 permanent;

Dans la syntaxe des expressions régulières, vous pouvez ajouter le domaine à la place du retour 301. Vous pouvez également utiliser une telle construction sans bloc serveur séparé :

if ($host ~* ^(losst.ru|www.losst.ru)$ ){
rewrite ^/(.*)$ https://losst.ru/$1 permanent;
}

Ensuite, vous devez enregistrer le fichier et vérifier la configuration de Nginx. Pour ce faire, il est utilisé :

$ sudo nginx -t

настройка Nginx

Si tout est OK, redémarrez Nginx :

$ sudo systemctl restart nginx

Vérifiez le type de réponse du serveur que vous obtenez avec curl :

$ curl -I losst.ru

настройка Nginx

Ou laisser l'utilitaire suivre le chemin de redirection complet :

$ curl ILa losst.ru

настройка Nginx

Comme vous pouvez le voir, la configuration d'une redirection vers https nginx est assez simple, le travail se fait en ajoutant une ligne au fichier de configuration, le reste n'étant que des paramètres supplémentaires.