Maison  >  Article  >  Opération et maintenance  >  Tutoriel de configuration Nginx HTTPS pour protéger la sécurité de la transmission des données du site Web

Tutoriel de configuration Nginx HTTPS pour protéger la sécurité de la transmission des données du site Web

PHPz
PHPzoriginal
2023-07-04 13:43:421535parcourir

Tutoriel de configuration Nginx HTTPS pour protéger la sécurité de la transmission des données des sites Web

Avec le développement rapide d'Internet, les problèmes de sécurité des sites Web font l'objet d'une attention croissante. Afin de protéger la sécurité de la transmission des données du site Web, l'utilisation du protocole HTTPS est une mesure très importante. Cet article expliquera comment utiliser Nginx pour configurer HTTPS afin d'assurer la sécurité de la transmission des données sur le site Web.

1. Installer le certificat SSL
Avant de configurer HTTPS, nous devons obtenir un certificat SSL pour garantir l'identité du site Web et la sécurité de la transmission des données. Vous pouvez acheter un certificat auprès d'une autorité de certification (CA) tierce ou utiliser un outil de génération de certificat open source gratuit tel que Let's Encrypt.

Les étapes pour installer le certificat sont les suivantes :

  1. Télécharger le certificat : Téléchargez le fichier de certificat (y compris la clé publique, la clé privée et la chaîne de certificat) sur le serveur. En règle générale, les fichiers de certificat portent les extensions .crt et .key.
  2. Créer un fichier de stockage SSL : utilisez la commande openssl pour fusionner les fichiers .crt et .key en un seul fichier au format .pem :
    openssl rsa -in privateKey.key -text > privateKey.pem
    openssl x509 -inform PEM -in certificate . crt > certificate.pem
    cat privateKey.pem certificate.pem > ssl.crt

2 Configuration Nginx HTTPS

  1. Ouvrez le fichier de configuration Nginx : généralement situé dans /etc/nginx/nginx.conf ou /usr. /local/nginx/conf/nginx.conf.
  2. Ajouter un bloc de service HTTPS : Dans le bloc http, ajoutez la configuration suivante :
    server {

    listen 443 ssl;
    server_name yourdomain.com;
    ssl_certificate /path/to/ssl.crt;
    ssl_certificate_key /path/to/privateKey.key;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ......

    }

    • listen 443 ssl : Écoutez le port par défaut 443 du protocole HTTPS et activez SSL.
    • server_name : Remplacez par votre nom de domaine.
    • ssl_certificate : Spécifiez le chemin d'accès au certificat SSL.
    • ssl_certificate_key : Spécifiez le chemin d'accès à la clé privée SSL.
    • ssl_protocols : spécifiez la version du protocole SSL/TLS prise en charge.
    • ssl_ciphers : spécifiez les algorithmes de chiffrement pris en charge.
  3. Configurer la redirection HTTP vers HTTPS : à l'intérieur du bloc http, ajoutez la configuration suivante :
    server {

    listen 80;
    server_name yourdomain.com;
    return 301 https://$server_name$request_uri;

    }

    Lorsqu'un utilisateur accède à une URL HTTP, Nginx le redirigera automatiquement vers une URL HTTPS.

  4. Enregistrez et rechargez la configuration : Enregistrez le fichier de configuration et exécutez la commande suivante pour redémarrer le service Nginx :
    sudo service nginx restart

À ce stade, vous avez configuré avec succès le service HTTPS Nginx.

3. Optimiser la configuration HTTPS
Afin d'améliorer encore la sécurité et les performances du site Web, vous pouvez prendre les mesures d'optimisation suivantes :

  1. Activer le protocole HTTP/2 : utilisez le module HTTP/2 de Nginx pour mettre à niveau le protocole HTTPS vers HTTP/2 , améliore la vitesse de chargement et les performances du site Web.
    Ajouter le blocage du serveur :
    écouter 443 ssl http2 ;
  2. Activer l'agrafage OCSP : l'agrafage OCSP est une technologie qui améliore la vitesse et la sécurité de la vérification SSL. Ajoutez le bloc serveur :
    ssl_stapling on ;
    ssl_stapling_verify on ;
    resolver 8.8.8.8 8.8.4.4 valid=300s ;
    resolver_timeout 5s
  3. Configure HTTP Strict Transport Security (HSTS) : HSTS peut forcer la répétition de toutes les requêtes HTTP ; Directement vers HTTPS et évitez les attaques de type man-in-the-middle.
    Ajoutez le bloc serveur :
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

4. Problèmes courants et solutions dans la configuration HTTPS
Lors de la configuration HTTPS, vous pouvez rencontrer des questions fréquemment posées . Voici quelques problèmes courants et leurs solutions :

  1. Erreur du fichier de configuration : Vérifiez si le fichier de configuration Nginx est correct, notamment si les chemins vers ssl_certificate et ssl_certificate_key sont corrects.
  2. Erreur de certificat : assurez-vous que votre certificat SSL est valide et correspond au nom de domaine. La validité du certificat peut être vérifiée dans le navigateur.
  3. Problèmes de pare-feu : si vous utilisez un pare-feu, assurez-vous que le port 443 (protocole HTTPS) est ouvert.
  4. Problème de protocole SSL/TLS : certains clients peuvent ne pas prendre en charge les anciennes versions du protocole SSL/TLS. Conserver uniquement TLSv1.2 dans ssl_protocols peut résoudre ce problème.

Conclusion
En configurant le protocole HTTPS avec Nginx, nous pouvons fournir un canal de transmission de données plus sécurisé pour le site Web. Cet article explique comment installer un certificat SSL et configurer le service HTTPS de Nginx, et fournit des configurations d'optimisation et des solutions aux problèmes courants. J'espère que cet article vous sera utile et rendra la transmission de données de votre site Web plus sécurisée et fiable.

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:
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