Avec le développement d'Internet, une attention croissante a été accordée à la sécurité des sites Web, en particulier ceux impliquant la confidentialité des utilisateurs et les informations sensibles. Les certificats SSL sont devenus l'une des mesures importantes pour garantir la sécurité des sites Web. Nginx, en tant que serveur Web hautes performances, prend également en charge les certificats SSL. Cet article explique comment optimiser la négociation SSL et la chaîne de certificats de Nginx pour améliorer les performances de sécurité du site Web.
La poignée de main SSL est une partie très importante du protocole SSL/TLS, qui garantit la sécurité de la communication entre le client et le serveur. L'optimisation de la prise en charge de la négociation SSL par Nginx peut être réalisée des deux manières suivantes :
1.1 Activer la réutilisation de la session SSL
La réutilisation de la session SSL est une technologie qui améliore l'efficacité de la négociation SSL en enregistrant l'ID et la clé de la session SSL. Au cours du processus de négociation SSL, le client et le serveur doivent échanger des certificats et effectuer une négociation de clé de chiffrement et d'autres opérations. Ces opérations prendront beaucoup de temps et de ressources. L'activation de la réutilisation de la session SSL permet au client et au serveur d'utiliser directement la connexion SSL précédemment établie dans le processus de négociation SSL ultérieur, évitant ainsi les calculs de clé et les opérations de négociation répétés, améliorant ainsi l'efficacité de la négociation SSL.
Il est très simple d'activer la réutilisation de session SSL dans Nginx. Il vous suffit d'ajouter les instructions suivantes dans le bloc de configuration SSL :
ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m;
Parmi elles, ssl_session_cache précise la méthode et le nom du cache de session SSL. Ici, un partagé. le cache mémoire est utilisé et spécifié. La taille du cache est de 10 Mo. ssl_session_timeout spécifie le délai d'expiration de la session SSL, qui est défini ici sur 5 minutes.
1.2 Choisissez une suite de cryptage SSL appropriée
Lors du processus de négociation SSL, le client et le serveur doivent choisir un algorithme de cryptage pour protéger la sécurité des données de communication. La sécurité et l'efficacité des différents algorithmes de chiffrement sont différentes, donc le choix d'une suite de chiffrement SSL appropriée peut améliorer l'efficacité et la sécurité de la négociation SSL.
Dans Nginx, vous pouvez utiliser la directive ssl_ciphers pour spécifier la suite de chiffrement SSL, par exemple :
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA;
Un ensemble de suites de chiffrement SSL de plus haute sécurité sont sélectionnées ici, y compris des algorithmes de chiffrement tels que ECDHE, DHE et AES.
Le certificat SSL est un élément important de l'établissement d'une connexion HTTPS, et la chaîne de certificats est l'une des clés de la vérification du certificat SSL. Afin d'améliorer la sécurité de la chaîne de certificats, Nginx prend en charge les deux méthodes d'optimisation suivantes.
2.1 Utilisation du protocole HTTP/2
Le protocole HTTP/2 est un nouveau protocole réseau qui utilise le protocole TLS/SSL au niveau de la couche de transport et peut directement activer le cryptage TLS. L'utilisation du protocole HTTP/2 peut éviter les attaques de l'homme du milieu et la falsification des certificats SSL, améliorant ainsi encore la sécurité de la chaîne de certificats.
Dans Nginx, activer le protocole HTTP/2 est très simple Il suffit d'ajouter les instructions suivantes dans le bloc de configuration SSL :
listen 443 ssl http2;
Parmi elles, http2 précise que le serveur utilise le protocole HTTP/2.
2.2 Installer la chaîne de certificat
Le certificat SSL est émis par une autorité de certification numérique (CA). La chaîne de certificat comprend le certificat de l'autorité de certification SSL et les certificats intermédiaires, etc., qui peuvent prouver l'authenticité et l'intégrité du certificat SSL. . Pour augmenter la sécurité de la chaîne de certificats, il est recommandé d'installer la chaîne de certificats complète sur le serveur.
Installer la chaîne de certificats dans Nginx est très simple, il suffit de placer le fichier de chaîne de certificats à l'emplacement spécifié :
ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem;
Parmi eux, fullchain.pem est le fichier complet de chaîne de certificats, et privkey.pem est le fichier de clé privée du Certificat SSL.
En bref, la poignée de main SSL et la chaîne de certificats de Nginx sont des composants très importants pour assurer la sécurité du site Web. En optimisant la poignée de main SSL et la chaîne de certificats, les performances de sécurité du site Web peuvent être améliorées et les menaces de sécurité telles que l'homme du milieu. les attaques et la falsification des certificats SSL peuvent être évitées.
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!