Facilitez votre migration à HTTPS avec la directive CSP Upgrade Insecure Requests
"Upgrade Insecure Requests" est une directive CSP (Content Security Policy) vous permettant de signifier aux clients HTTP/Navigateurs que toutes les ressources doivent être accédées via HTTPS.
Cela vous permet de migrer plus facilement vers HTTPS des sites ou applications web contenant un grand nombre de ressources déclarées en HTTP. Vos ressources seront automatiquement récupérées en HTTPS par le client/navigateur, sans aucune alerte de contenu mixte (mixed content).
Il faut bien entendu veiller à ce que vos serveurs de ressources soient accessibles en HTTPS.
Support
Upgrade Insecure Requests est supporté entre autres, sous Mozilla Firefox (42+), Google Chrome (43+), Microsoft Edge (Build 17134+), Opera (30+), le navigateur Android (56+), (Chrome pour Android, Safari Mac 0.1+), Safari iOS (10.3+).
Internet Explorer n'est pas compatible.
Implémentation
Pour implémenter cette fonctionnalité sur votre serveur web, il vous suffit de déclarer un nouveau header (en-tête) HTTP dans la configuration de votre site.
Apache
Pour Apache, il vous faudra dans un premier temps charger le module de header. Par exemple :
LoadModule headers_module modules/mod_headers.so
Il vous faudra ensuite charger le header dans votre hôte virtuel :
Header always set Content-Security-Policy "upgrade-insecure-requests;"
IIS
IIS vous permet d'ajouter des header HTTP personnalisées. Il vous suffit d'ajouter un header de nom Content-Security-Policy et de valeur upgrade-insecure-requests;.
Nginx
Pour Nginx, il vous suffit d'ajouter la configuration suivante à votre bloc serveur :
add_header Content-Security-Policy upgrade-insecure-requests;
Lighthttpd
Il vous faudra tout d'abord activer le module setEnv en ajoutant cette instruction a votre configuration :
server.modules += ( "mod_setenv" )
Vous pourrez ensuite l'activer sur votre site :
setenv.add-response-header = ( "Content-Security-Policy" => "upgrade-insecure-requests;" )
Autres
Vous pouvez configurer tous les serveurs vous permettant de configurer vos headers HTTP en ajoutant un header "Content-Security-Policy" de valeur "upgrade-insecure-requests;".
Ressources additionnelles
- Si votre site est déjà entièrement accessible en HTTPS, ressources et liens inclus, et que vous souhaitez l'activer en HTTPS, vous pouvez utiliser HSTS.
- Spécification
- Spécification des CSP
- Déploiement de Upgrade Insecure Requests dans les navigateur
- Status de Upgrade Insecure Requests dans Microsoft Edge
- Documentation de la directive Header de Apache
- Ajouter des headers HTTP personnalisés dans IIS
- Documentation du module Headers de Nginx
- Documentation du module setEnv de Lighthttpd