Définition
Suite à l'activation d'un certificat SSL sur un nom de domaine, il peut être nécessaire de forcer l'utilisation du protocole https, afin qu'un internaute soit automatiquement redirigé vers une url sécurisée
Procédure
Service concerné : Hébergement Windows ASP.NET
Panel concerné : Plesk
Niveau : intermédiaire
[/bcolor]
Cette aide explique comment rediriger les visiteurs de la version HTTP de votre site vers sa version sécurisée en HTTPS en ajoutant une règle dans le fichier web.config.
Cette méthode est destinée aux sites hébergés sur un serveur Windows avec IIS. Elle peut notamment être utilisée lorsque votre application nécessite une règle de redirection personnalisée.
[bcolor_blue]
Pour activer la redirection HTTPS directement depuis Plesk, consultez l’aide : Comment mettre en place un certificat SSL sur un hébergement Plesk ?
[/bcolor]
[bcolor_blue]
Cette aide concerne uniquement les hébergements Windows utilisant Plesk.
Vous utilisez un autre environnement ?
[/bcolor]
Vérifiez que votre certificat SSL/TLS est installé et que votre site s’affiche correctement lorsque vous saisissez directement son adresse en https://.
Le certificat doit couvrir l’adresse utilisée par vos visiteurs, notamment le domaine avec ou sans www.
Téléchargez également une copie de votre fichier web.config avant de le modifier. Vous pourrez ainsi le restaurer rapidement si le site ne s’affiche plus après la modification.
[bcolor_orange]
La règle présentée dans cette aide crée une redirection permanente 301. Elle peut être mémorisée par le navigateur.
N’activez cette redirection qu’après avoir vérifié que votre site fonctionne correctement en HTTPS.
[/bcolor]

httpdocs.
web.config.
Si aucun fichier web.config n’existe dans le dossier racine du site, vous pouvez en créer un.

[bcolor_orange]
Le fichier web.config utilise le format XML. Une balise manquante, mal fermée ou placée au mauvais endroit peut provoquer une erreur 500 et empêcher l’affichage du site.
[/bcolor]
La modification à effectuer dépend du contenu actuel de votre fichier web.config.
Ajoutez le contenu suivant :
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirection HTTP vers HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action
type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent"
/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>Enregistrez ensuite le fichier.
Ne créez pas une deuxième section <rewrite> ou <rules>.
Ajoutez uniquement la règle suivante à l’intérieur de la section <rules> existante, avant la balise de fermeture </rules> :
<rule name="Redirection HTTP vers HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action
type="Redirect"
url="https://{HTTP_HOST}/{R:1}"
redirectType="Permanent"
/>
</rule>Le nom de la règle doit être différent de celui des autres règles déjà présentes dans le fichier.
[bcolor_orange]
Vérifiez qu’aucune autre règle du fichier web.config ou de votre application ne redirige déjà le site vers HTTPS. Plusieurs redirections actives simultanément peuvent provoquer une boucle.
[/bcolor]
Ouvrez une fenêtre de navigation privée, puis saisissez l’adresse de votre site en commençant par http://.
Par exemple :
http://votredomaine.frLe navigateur doit automatiquement afficher :
https://votredomaine.frTestez également une page interne :
http://votredomaine.fr/contactElle doit être redirigée vers la même page en HTTPS :
https://votredomaine.fr/contactEffectuez également le test avec la version comportant www si elle est utilisée par votre site.
[bcolor_green]
La redirection fonctionne si les adresses commençant par http:// basculent automatiquement vers la même page en https://, sans alerte de sécurité.
[/bcolor]
Si votre site ne s’affiche plus après l’enregistrement :
web.config modifié par la copie téléchargée avant la manipulation.
Si vous avez uniquement ajouté la règle dans une section <rules> existante, supprimez le bloc commençant par :
<rule name="Redirection HTTP vers HTTPS"et se terminant par :
</rule>Enregistrez ensuite le fichier et testez de nouveau votre site.
Mon site affiche une erreur 500
Le fichier web.config contient probablement une erreur de syntaxe ou une section en double.
Restaurez la copie sauvegardée, puis vérifiez :
<configuration> ;<system.webServer> ;<rewrite> ou <rules>.Le navigateur affiche une boucle de redirection
Une autre redirection HTTPS est probablement déjà active.
Vérifiez :
web.config ;Conservez une seule méthode de redirection lorsque cela est possible.
Testez ensuite le site dans une fenêtre de navigation privée afin qu’une ancienne redirection mémorisée par le navigateur ne fausse pas le résultat.
Le site reste accessible en HTTP
Vérifiez que le fichier web.config se trouve dans le dossier racine du bon site. Il s’agit généralement du dossier httpdocs, mais un domaine secondaire peut utiliser un autre dossier.
Contrôlez également que la règle est bien placée dans la section <system.webServer> et que le fichier a été enregistré.
Une alerte de sécurité apparaît après la redirection
La redirection fonctionne, mais le certificat SSL/TLS n’est pas valide pour l’adresse demandée.
Vérifiez que le certificat :
www si elle est utilisée ;Le cadenas ne s’affiche pas alors que le site est en HTTPS
Certaines ressources du site, comme des images, des scripts ou des feuilles de style, sont probablement encore chargées avec une adresse commençant par http://.
La redirection ne modifie pas automatiquement les liens enregistrés dans votre site. Vous devez corriger ces adresses dans votre CMS, votre base de données ou les fichiers de votre application.
[/tips]