Selon l'étude de Netcraft, 95% des serveurs HTTPS sont vulnérables aux attaques Man-in-the-Middle. Par conséquent, il est très important de mettre en œuvre correctement le HSTS. HSTS (HTTP Strict Transport Security) est une politique qui protège les sites Web contre les attaques malveillantes telles que le détournement de clics, les rétrogradations de protocole et les attaques de type "man-in-the-middle", comme expliqué dans mon article précédent. Dans cet article, nous verrons différentes étapes pour activer HSTS sur NGINX et Apache.
Comment activer HSTS sur Nginx
Ouvrez votre fichier de configuration Nginx pour le domaine dont vous avez besoin pour activer HSTS.
Par exemple :/etc/nginx/conf.d/tg.conf
Ajoutez la ligne ci-dessous à votre bloc de serveur HTTPS :
NE PAS AJOUTER HSTS au bloc HTTPadd_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;paramètre includeSubDomains
Le includeSubDomains
facultatif indique au navigateur que la politique HSTS s'applique également à tous les sous-domaines du domaine actuel.
Le always
garantit que l'en-tête est défini pour toutes les réponses, y compris les réponses d'erreur générées en interne.
Pour que le HSTS soit configuré pour une période de 1 an, définissez max-age sur 31536000 (en secondes). Il doit être d'au moins 3 mois pour satisfaire aux exigences de sécurité.
Redémarrer le service Nginx
Avant de redémarrer, vérifiez le fichier de configuration comme ci-dessous :
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Redémarrez le serveur Nginx pour prendre les nouvelles modifications.
# systemctl restart nginx
Comment activer HSTS sur Apache
Pour activer HSTS sur Apache, nous avons besoin des mod_headers
module installé. Exécutez la commande ci-dessous pour savoir si le module est déjà installé.
# apachectl -M | grep headers headers_module (shared)
si vous l'avez, procédons à la configuration des paramètres d'en-tête du domaine dont vous avez besoin pour activer HSTS. Ouvrez le fichier de configuration qui contient le VirtualHost
qui utilise SSL.
For eg: /etc/httpd/conf.d/tg.conf
Ajoutez la configuration ci-dessous dans votre VirtualHost
pour le port 443 comme ci-dessous :
<VirtualHost *:443> ...... Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" ...... </VirtualHost>
Redémarrer le service Apache
Avant de redémarrer, vérifiez le fichier de configuration comme ci-dessous :
# apachectl configtest Syntax OK
Si la syntaxe est correcte, redémarrez le serveur Apache pour prendre les nouvelles modifications.
# systemctl restart httpd ## Redhat systems # systemctl restart apache2 ## Debian systems
C'est ça! Testez le serveur Web pour voir si le HSTS a été activé.
$ curl -kIs https://example.com | grep Strict Strict-Transport-Security: max-age=31536000; includeSubDomains