Comment utiliser Nginx pour rediriger tout le trafic de HTTP à HTTPS
- 2310
- 701
- Zoe Dupuis
Si votre site Web est hébergé avec Nginx et qu'il a activé SSL, il est de la meilleure pratique de désactiver complètement HTTP et de forcer tout le trafic entrant vers la version HTTPS du site Web. Cela évite d'avoir du contenu en double et garantit que tous les utilisateurs du site ne font que parcourir la version sécurisée de votre site Web. Vous devriez également voir un boost de référencement, car les moteurs de recherche préfèrent les pages Web non redondantes et sécurisées.
Dans ce guide, nous supposerons que vous utilisez déjà Nginx sur un système Linux et que vous souhaitiez rediriger tout le trafic HTTP vers HTTPS. Même si un utilisateur se trouve à suivre un http: //
lien, le site doit les envoyer à la page correcte et sécurisée, ce qui se produit instantanément et sans l'intervention de l'utilisateur.
Il existe deux façons de configurer cette redirection dans Nginx. Une méthode vous permet de configurer la redirection des sites individuels. L'autre méthode peut rediriger HTTP vers HTTP. Nous couvrirons les instructions étape par étape pour les deux méthodes ci-dessous. Commençons.
NOTEUtilisation d'Apache au lieu de Nginx? Nous avons écrit un guide séparé pour utiliser Apache pour rediriger tout le trafic HTTP vers HTTPS.
Dans ce tutoriel, vous apprendrez:
- Comment rediriger HTTP vers HTTPS pour les sites Web de Nginx individuels
- Comment rediriger HTTP vers HTTPS pour tous les sites Web Nginx
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Toute distribution Linux |
Logiciel | Nginx |
Autre | Accès privilégié à votre système Linux en tant que racine ou via le Sudo commande. |
Conventions | # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier |
Rediriger HTTP vers HTTPS pour les sites individuels
Nous devons apporter des modifications au fichier de configuration du serveur Nginx afin de rediriger le trafic. Ouvrez-le avec votre éditeur de texte préféré.
$ sudo nano / etc / nginx / sites-disponible / your_conf_file
Il devrait y avoir au moins deux blocs dans ce fichier - celui qui contrôle la configuration des connexions HTTP (port 80) et une qui contrôle HTTPS (port 443). Dans le cadre de la partie HTTP, insérez le code de redirection 301 suivant. Bien sûr, remplacez l'exemple de domaine par le domaine de votre site.
Server écouter 80; Exemple de nom.com www.exemple.com; Retour 301 https: // Exemple.com $ request_uri;
Comme vous pouvez le voir, le code écoute le port 80 pour les connexions entrantes à exemple.com
et www.exemple.com
. Il redirige ensuite ces connexions vers la même URL mais avec https: //
.
Sous le bloc HTTP, vous aurez besoin d'un bloc HTTPS si vous n'en avez pas déjà fait un.
Server écouter 80; Exemple de nom.com www.exemple.com; Retour 301 https: // Exemple.com $ request_uri; Server écouter 443 SSL; Exemple de nom.com; Exemple SSL_CERTIFATE.com.CRT; SSL_CERTIFICATE_KEY Exemple.com.clé; # Autre configuration
Mais qu'en est-il des connexions avec https: // www.exemple.com
(Remarquez le www.)? Pour rediriger également ces connexions, nous aurons besoin d'un autre bloc avec une redirection 301. En totalité, le fichier de configuration ressemblerait à ceci (bien que le vôtre puisse avoir une configuration supplémentaire):
Server # Redirigez tout HTTP vers HTTPS Listen 80; Exemple de nom.com www.exemple.com; Retour 301 https: // Exemple.com $ request_uri; serveur # rediriger https www. Écoutez 443 SSL; server_name www.exemple.com; Retour 301 https: // Exemple.com $ request_uri; Server écouter 443 SSL; Exemple de nom.com; Exemple SSL_CERTIFATE.com.CRT; SSL_CERTIFICATE_KEY Exemple.com.clé; # Autre configuration
Assurez-vous d'utiliser une commande SystemCTL pour redémarrer ou recharger Nginx pour que ces nouvelles modifications prennent effet.
$ sudo systemctl recharger nginx
Votre site devrait désormais toujours rediriger vers une URL avec le format de https: // exemple.com
, Quel que soit le lien préfacé par http: //
et / ou www.
.
Rediriger HTTP vers HTTPS pour tous les sites
Pour rediriger le trafic pour tous vos sites Web hébergés Nginx, entrez le code suivant dans votre fichier de configuration:
server écouter 80 default_server; écouter [::]: 80 default_server; nom du serveur _; retour 301 https: // $ host $ request_uri;
C'est à peu près le même que le code ci-dessus, sauf qu'il utilise la variable $ hôte
il peut donc être appliqué à toute URL que Nginx héberge. Cette méthode peut être un peu plus pratique, mais vous perdrez une partie du contrôle granulaire que vous avez lorsque chaque site a ses propres blocs de serveur. Utilisez votre propre discrétion et choisissez la méthode que vous aimez.
Conclusion
Dans la grande majorité des cas, il n'y a aucune raison de continuer à utiliser HTTP lorsque votre site peut offrir HTTPS. Il est plus sûr, donne à l'utilisateur la tranquillité d'esprit, et le site obtiendra un petit coup de référence. Dans cet article, nous avons vu à quel point il était facile de rediriger tout le trafic vers HTTPS et de nous débarrasser entièrement de HTTP. L'une de ces méthodes est viable pour forcer le trafic HTTP vers HTTPS sur votre (s) site (s).
Tutoriels Linux connexes:
- Ubuntu 20.04: WordPress avec l'installation de Nginx
- Choses à installer sur Ubuntu 20.04
- Introduction aux moteurs de stockage MySQL
- Une introduction à l'automatisation Linux, des outils et des techniques
- Ubuntu 20.04 WordPress avec installation Apache
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Masterring Bash Script Loops
- Choses à installer sur Ubuntu 22.04
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Ubuntu 20.04 Guide
- « Comment changer le nom d'hôte sur Linux
- Comment surveiller l'activité du réseau sur un système Linux »