Maison Opération et maintenance Nginx Comment nginx configure HSTS

Comment nginx configure HSTS

May 14, 2023 pm 04:37 PM
nginx hsts

Netcraft a récemment publié ses recherches sur les tests de sites Web SSL/TLS et a noté que seulement 5 % des utilisateurs ont correctement implémenté HTTP Strict Transport Security HSTS.

Qu'est-ce que HSTS

HTTPS (SSL et TLS) garantit la sécurité des communications entre les utilisateurs et les sites Web, ce qui rend difficile l'interception, la modification et l'usurpation d'identité des attaquants. Lorsque l'utilisateur saisit manuellement un nom de domaine ou un lien http://, la première requête vers le site Web n'est pas cryptée, en utilisant du http simple. Les sites Web les plus sécurisés renvoient immédiatement une redirection dirigeant l'utilisateur vers une connexion https. Cependant, un attaquant de type man-in-the-middle peut être en mesure d'intercepter la requête http initiale et ainsi contrôler les réponses ultérieures de l'utilisateur.

Naturellement, HSTS a été créé pour résoudre ce problème de sécurité potentiel. Même si l'utilisateur saisit un nom de domaine ou une connexion http, le navigateur passera strictement à une connexion https.

Comment nginx configure HSTS

Comment fonctionne HSTS

Les politiques HSTS sont émises dans les en-têtes de réponse HTTP envoyés depuis les sites HTTPS sécurisés.

Strict-Transport-Security: max-age=31536000

Lorsque le navigateur voit cet en-tête provenant d'un site HTTPS, il sait que le nom de domaine n'est accessible que via HTTPS (SSL ou TLS). Et mettez en cache ces informations dans 31536000, soit 1 an.

Le paramètre facultatif includeSubDomains indique au navigateur que la stratégie s'applique à tous les sous-domaines du domaine actuel.

Strict-Transport-Security: max-age=31536000; includeSubDomains

nginx configure HSTS

Définissez les en-têtes de réponse HSTS sur le fichier de configuration nginx. Le paramètre

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

always garantit que toutes les réponses ont cet en-tête défini, y compris les réponses d'erreur générées en interne. Les versions de nginx antérieures à 1.7.5 ne prennent pas en charge le paramètre Always et les réponses d'erreur générées en interne ne définissent pas ces informations d'en-tête.

Règles d'héritage de la directive add_header :

Le bloc de configuration nginx hérite du bloc d'encapsulation où se trouve la directive add_header, il vous suffit donc de placer la directive add_header dans le bloc serveur de niveau supérieur. Il existe également une exception importante : si un bloc contient la directive add_header lui-même, il n'héritera pas de l'en-tête du bloc englobant et vous devrez redéfinir toutes les directives add_header.

server {
    listen 443 ssl;
 
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
 
    # This 'location' block inherits the STS header
    location / {
        root /usr/share/nginx/html;
    }
 
    # Because this 'location' block contains another 'add_header' directive,
    # we must redeclare the STS header
    location /servlet {
        add_header X-Served-By "My Servlet Handler";
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
        proxy_pass http://localhost:8080;
    }
}

Test de la sécurité du transport HTTP Strict :

Une fois qu'un utilisateur propose une politique HSTS, sa période d'informations de cache est spécifiée par max-age. Pendant ce temps, le navigateur refusera l'accès au service Web via HTTP non crypté et refusera d'accorder des exceptions pour les erreurs de certificat (si le site Web a déjà soumis un certificat valide et fiable). Si un paramètre includeSubDomanis est spécifié, ces restrictions s'appliquent également à tous les sous-domaines du domaine actuel.

Lorsque vous testez HSTS, réduisez la durée d'âge maximum.

Si chaque réponse HTTPS doit avoir un en-tête STS :

Notre objectif est de restituer la politique HSTS le plus rapidement possible lorsque l'utilisateur démarre une réponse HTTPS. S'ils reçoivent des politiques HSTS pendant la session, ils sont toujours vulnérables aux attaques de piratage HTTP. Le navigateur ne doit examiner l'en-tête STS qu'une seule fois, il n'est donc pas strictement nécessaire de l'ajouter à chaque bloc d'emplacement et à chaque réponse. Cependant, le simple fait de l'ajouter à la page d'accueil ou à la page de connexion peut ne pas suffire. Si vous l'ajoutez uniquement à la réponse mise en cache, le client risque de ne pas la voir. Assurez-vous de couvrir autant de parties de votre URL que cela est raisonnable, en accordant une attention particulière au contenu dynamique.

HTTP et HTTPS en parallèle

Parfois, un site Web doit fonctionner à la fois sous HTTP et HTTPS

server {
    listen  80;
    listen  443 ssl;
    ...
}

Parfois, les requêtes http doivent être redirigées vers https

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
 
    # Discourage deep links by using a permanent redirect to home page of HTTPS site
    return 301 https://$host;
 
    # Alternatively, redirect all HTTP links to the matching HTTPS page
    # return 301 https://$host$request_uri;
}
 
server {
    listen 443 ssl;
    server_name www.ttlsa.com;
 
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
}

Améliorer HSTS

Protéger les clients de l'interception HTTP, à partir de Il voit l'en-tête STS jusqu'à l'âge maximum déclaré. Cependant, HSTS n'est pas une solution parfaite pour le détournement de session HTTP. Les utilisateurs sont toujours vulnérables s'ils accèdent à un site Web protégé par HSTS via HTTP :

  1. N'ont jamais visité le site Web auparavant

  2. Ils ont récemment réinstallé leur système d'exploitation

  3. Ils ont récemment réinstallé leur navigateur

  4. Passer à un nouveau navigateur

  5. Passer à un nouvel appareil tel qu'un téléphone mobile

  6. Supprimer le cache du navigateur

  7. Je n'ai pas visité le site récemment et l'âge maximum a expiré

Afin de résoudre ce problème, Google insiste pour conserver un nom de domaine et un nom de sous-domaine de site « liste de préchargement HSTS », et soumet son nom de domaine via https://hstspreload.appspot.com/. Cette liste de noms de domaine est distribuée et codée en dur dans les principaux navigateurs Web. Les clients accédant aux noms de domaine de cette liste utiliseront activement HTTPS et refuseront l'accès au site en utilisant HTTP.

Une fois l'en-tête STS défini ou votre domaine soumis à la liste de préchargement HSTS, il est impossible de le supprimer. Il s'agit d'une décision à sens unique pour rendre votre nom de domaine disponible via HTTPS.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Porce de variable PHP expliquée
1 Il y a quelques mois By 百草
Conseils pour écrire des commentaires PHP
4 Il y a quelques semaines By 百草
Commentant le code en php
4 Il y a quelques semaines By 百草
<🎜>: Grow A Garden - Guide complet des marchands itinérants
3 Il y a quelques semaines By Jack chen

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1510
276
Comment exécuter le code PHP après avoir écrit du code PHP? Plusieurs façons courantes d'exécuter le code PHP Comment exécuter le code PHP après avoir écrit du code PHP? Plusieurs façons courantes d'exécuter le code PHP May 23, 2025 pm 08:33 PM

Le code PHP peut être exécuté de plusieurs manières: 1. Utilisez la ligne de commande pour entrer directement le "nom de fichier PHP" pour exécuter le script; 2. Mettez le fichier dans le répertoire racine du document et accédez-y via le navigateur via le serveur Web; 3. Exécutez-le dans l'IDE et utilisez l'outil de débogage intégré; 4. Utilisez le bac à sable PHP en ligne ou la plate-forme d'exécution de code pour les tests.

Après avoir installé Nginx, le chemin du fichier de configuration et les paramètres initiaux Après avoir installé Nginx, le chemin du fichier de configuration et les paramètres initiaux May 16, 2025 pm 10:54 PM

La compréhension du chemin du fichier de configuration de Nginx et des paramètres initiaux est très importante car il s'agit de la première étape dans l'optimisation et la gestion d'un serveur Web. 1) Le chemin du fichier de configuration est généralement /etc/nginx/nginx.conf. La syntaxe peut être trouvée et testée à l'aide de la commande nginx-t. 2) Les paramètres initiaux incluent les paramètres globaux (tels que l'utilisateur, worker_processs) et les paramètres HTTP (tels que l'inclusion, log_format). Ces paramètres permettent la personnalisation et l'extension en fonction des exigences. Une configuration incorrecte peut entraîner des problèmes de performances et des vulnérabilités de sécurité.

Comment limiter les ressources des utilisateurs dans Linux? Comment configurer Ulimit? Comment limiter les ressources des utilisateurs dans Linux? Comment configurer Ulimit? May 29, 2025 pm 11:09 PM

Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire

Quelles sont les compétences de configuration Debian Nginx? Quelles sont les compétences de configuration Debian Nginx? May 29, 2025 pm 11:06 PM

Lors de la configuration de Nginx sur Debian System, les éléments suivants sont quelques conseils pratiques: la structure de base des paramètres globaux du fichier de configuration: définir les paramètres comportementaux qui affectent l'intégralité du service NGINX, tel que le nombre de threads de travail et les autorisations d'utilisateurs en cours d'exécution. Pièce de gestion des événements: Décider comment Nginx s'occupe des connexions réseau est une configuration clé pour améliorer les performances. Pièce de service HTTP: contient un grand nombre de paramètres liés au service HTTP et peut intégrer plusieurs serveurs et blocs de localisation. Options de configuration de base Worker_Connections: Définissez le nombre maximal de connexions que chaque thread de travailleur peut gérer, généralement définie sur 1024. Multi_accept: activez le mode de réception multi-connexion et améliorez la capacité de traitement simultané. s

Objectif de Nginx: servir du contenu Web et plus Objectif de Nginx: servir du contenu Web et plus May 08, 2025 am 12:07 AM

Nginxservceswebcontentandactsasareverseproxy, loadBalancer et m /r.1) itefficientlyServisetaticContent likehtmlandimages.2) itfunctionsasareverseproxyandloadBalancer, distribution.

Étapes spécifiques pour configurer l'auto-démarrage du service Nginx Étapes spécifiques pour configurer l'auto-démarrage du service Nginx May 16, 2025 pm 10:39 PM

Les étapes de démarrage de la configuration NGINX sont les suivantes: 1. Créez un fichier de service Systemd: Sutonano / etc / Systemd / System / nginx.service et ajouter des configurations pertinentes. 2. Recharger la configuration SystemD: SudosystemctlDaemon-RELOAD. 3. Activer Nginx pour démarrer automatiquement: SudosystemctLenablenginx. Grâce à ces étapes, Nginx s'exécutera automatiquement au démarrage du système, garantissant la fiabilité et l'expérience utilisateur du site Web ou de l'application.

Dépannage de Nginx: diagnostic et résolution des erreurs communes Dépannage de Nginx: diagnostic et résolution des erreurs communes May 05, 2025 am 12:09 AM

Le diagnostic et les solutions pour les erreurs courantes de Nginx incluent: 1. Afficher les fichiers journaux, 2. Ajuster les fichiers de configuration, 3. Optimiser les performances. En analysant les journaux, en ajustant les paramètres de délai d'expiration et en optimisant le cache et l'équilibrage de la charge, des erreurs telles que 404, 502, 504 peuvent être efficacement résolues pour améliorer la stabilité et les performances du site Web.

Quelles sont les techniques d'optimisation SEO pour Debian Apache2? Quelles sont les techniques d'optimisation SEO pour Debian Apache2? May 28, 2025 pm 05:03 PM

Les compétences d'optimisation du référencement de Debianapache2 couvrent plusieurs niveaux. Voici quelques méthodes clés: Recherche de mots clés: Utilisez des outils (tels que les outils de magie de mots clés) pour exploiter les mots clés du noyau et de la page. Création de contenu de haute qualité: produire un contenu précieux et original, et le contenu doit être effectué des recherches approfondies pour assurer un langage et un format clair. Disposition du contenu et optimisation de la structure: utilisez des titres et des sous-titres pour guider la lecture. Écrivez des paragraphes et des phrases concises et claires. Utilisez la liste pour afficher les informations clés. Combiner multimédia tels que des images et des vidéos pour améliorer l'expression. La conception vierge améliore la lisibilité du texte. Niveau technique Amélioration du référencement: Robots.txt Fichier: Spécifie les droits d'accès des robots des moteurs de recherche. Accélérer le chargement de la page Web: optimisé à l'aide du mécanisme de mise en cache et de la configuration Apache

See all articles