13 Juin

Redirection des Requêtes http vers https

Bien souvent, on souhaite disposer d’un serveur web exclusivement en https. Se pose alors le problème de gérer les requêtes http, généralement, on préfère une redirection en https.

Méthode Classique

Elle consiste à configurer un  » server block  » (*) sur le port 80 dont l’unique fonction et de renvoyer les éventuelles requêtes http sur le serveur https.

Cette méthode est propre et le code 301 indique au navigateur que la redirection est permanente. Le navigateur du client n’y reviendra plus.

Méthode avec un seul Server Block

Maintenant, il arrive qu’on ne veuille pas déclarer un premier server block sur le port 80. Le cas typique est celui d’un serveur web https sur un port non-standard à des fins d’administration ou autres. Mais si on oublie le https:// dans la barre de son navigateur, on obtient une erreur 497 :

400 Bad Request


The plain HTTP request was sent to HTTPS port


nginx/1.6.0

On souhaiterait donc que http://www.domaine.com:25000/ redirige vers https://www.domaine.com:25000/. Une solution propre consiste à jouer avec la page d’erreur renvoyée par Nginx :

La ligne 6 indique à Nginx que lorsqu’il voit arriver une requête http, la page d’erreur correspondante, c’est à dire 497, est la même url requise par le client mais en https. Ce dernier est donc alors redirigé comme il faut.

Voilà, c’est aussi simple que ça!

* VirtualHost est un terme apache, Nginx utilise le terme Server Block

Une pensée sur “Redirection des Requêtes http vers https

  1. Pingback: Force SSL Nginx et Esquiver la 400 Bad Request – Thxer

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.