IIS : redirection HTTP vers HTTPS
I. Présentation
Lorsque l'on héberge un site Internet ou une application accessible au travers du protocole HTTPS, on aime bien garder l'accès HTTP actif et rediriger les flux automatiquement de HTTP vers HTTPS afin que toutes les connexions soient sécurisées.
Dans ce tutoriel, nous allons voir comment rediriger automatiquement de HTTP vers HTTPS au sein de IIS. Je souhaitais partager avec vous cette méthode que j'ai déjà mise en place à plusieurs reprises et qui fonctionne très bien ! ?
? Prérequis : avant de commencer la configuration, vous devez installer le module "URL-Rewrite" sur votre serveur IIS. Vous pouvez le trouver sur la page suivante : IIS - URL Rewrite
Je pars également du principe que votre site est déjà accessible en HTTPS et que vous avez mis en place un certificat SSL.
II. Réécriture HTTP vers HTTPS sous IIS
Sur le serveur IIS, ouvrez la console "Gestionnaire des services Internet (IIS)" et sur la gauche, cliquez sur le site correspondant à celui sur lequel vous souhaitez configurer la redirection HTTP vers HTTPS.
Ensuite, au sein du panneau central, cliquez sur "Réécriture d'URL".
Une fois dans la partie "Réécriture d'URL", cliquez sur "Ajouter des règles" à droite. Choisissez "Règle vide" sous "Règles de trafic entrant". Cliquez sur "OK".
Donnez un nom à cette règle, par exemple "Redirection HTTP vers HTTPS" et renseignez la première zone, à savoir "Faire correspondre l'URL".
- Sélectionnez "Correspond au modèle" pour le champ "URL demandée"
- Sélectionnez "Expressions régulières" pour le champ "En utilisant"
- Saisissez "(.*)" dans la zone "Modèle" pour rediriger, peu importe la page du site
- Cochez la case "Ignorer la casse".
Descendez dans la page... Vous trouverez la zone "Conditions" : sélectionnez "Toutes conditions" comme "Regroupement logique" et cliquez sur le bouton "Ajouter" sur la droite.
La condition doit être créée de cette façon :
- Entrée de la condition : {HTTPS}
- Choisissez "Correspond au modèle" pour le champ "Vérifier la chaîne d'entrée"
- Utilisez le modèle suivant : ^OFF$
- Cochez la case "Ignorer la casse" et validez...
Cette condition va permettre que cette règle s'exécute uniquement lorsque la requête est envoyée en HTTP, d'où le "HTTPS = OFF" que l'on peut comprendre ainsi.
Dans la partie "Action", indiquez les valeurs suivantes :
- Type de l'action = Rediriger
- URL de redirection : https://{HTTP_HOST}{REQUEST_URI}
- Décochez l'option "Ajouter une chaîne de requête"
- Choisissez "Permanent (301)" comme "Type de redirection"
Cette règle va permettre de reprendre le site (http_host) ainsi que la requête (request_uri) en ajoutant "https://" devant pour rediriger le flux.
Pour le référencement (SEO), il est recommandé d'utiliser une redirection de type "301" qui sera dite permanente. Cela permet de dire que le contenu est définitivement déplacé de HTTP vers HTTPS.
Vous pouvez valider la configuration, la redirection est configurée ?
Par curiosité, vous pouvez consulter le fichier de configuration du site. Effectuez un clic droit dessus et cliquez sur "Explorer".
Dans ce dossier, vous devez trouver un fichier Web.Config : si vous le modifiez, vous allez retrouver un bloc de configuration correspondant à la règle que l'on vient de créer ?
Au fait, vous pouvez tester la redirection HTTP vers HTTPS ça doit fonctionner !
Parfois, suffit juste d’activer IIS si on a un autre web server pour que IIS fasse la redir http vers https sur ce fameux web server, true story x)
Un grand merci ! J’ai enfin réussi après quelques jours de galère
Merci !
Vraiment top les explications
Merci pour l’aide précise et concise.
Du coup, ayant recompilé mon site après avoir effectuer la redirection, il a fallu reprendre la procédure.
Bonjour,
Merci pour ces explications très claires.
je n’arrive pas à enregistrer le fichier ou plus exactement il est enregistré mais avec une erreur…et si je relance IIS pour vérifier, les paramètres ne sont pas conservés.
Tant que je ne relance pas le serveur, la redirection hhtp vers https fonctionne quand même.
Voici le message : (j’avais prévu des copies écrans)
Une erreur s’est produite lors de cette opération
Details :
Nom du fichier : \\……\web.config
numero de ligne : 6
Erreur : impossible d’ajouter une entree de collection dupliquée de type ‘rule’ avec un attribut de clé unique de type « name » ayant la valeur ‘redirection https’
et voici ce que j’ai donc mon fichier :
Pouvez vous m’aider ?
Cordialement,
Christian
j’ai fait exactement la même choses et j’ai même supprimé et recommencé mais la redirection ne fonctionne pas.
Site web Angular héberger par IIS