Maison > Opération et maintenance > Nginx > Déploiement HTTPS et optimisation des performances de sécurité de Nginx

Déploiement HTTPS et optimisation des performances de sécurité de Nginx

WBOY
Libérer: 2023-06-10 17:13:40
original
1130 Les gens l'ont consulté

Nginx, en tant que serveur Web hautes performances et serveur proxy inverse, est largement utilisé pour le déploiement d'applications et l'équilibrage de charge. Avec l’amélioration progressive de la sensibilisation à la sécurité et à la protection de l’environnement, HTTPS est également devenu un élément indispensable des applications Web modernes. Cet article se concentrera sur le déploiement HTTPS de Nginx et l’optimisation des performances de sécurité.

1. Déploiement HTTPS de Nginx

  1. Application de certificat

Vous devez d'abord vous rendre auprès de l'autorité de certification (CA) pour demander un certificat SSL. Une fois l'application réussie, vous obtiendrez un fichier de certificat (.crt) et un fichier de clé privée (.key).

  1. Configuration HTTPS

La configuration HTTPS de Nginx doit impliquer trois aspects : le transfert HTTP vers HTTPS, la configuration du certificat Nginx et la configuration HTTPS.

(1) Transférer HTTP vers HTTPS

Dans le fichier de configuration Nginx, vous devez ajouter une section de configuration HTTP afin que lorsque les utilisateurs accèdent au port HTTP par défaut 80, ils puissent automatiquement accéder au port par défaut 443 de HTTPS.

server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}
Copier après la connexion

(2) Configuration du certificat Nginx

Dans le fichier de configuration Nginx, vous devez ajouter le certificat SSL et le fichier de clé privée que vous venez de demander au fichier de configuration.

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;
    ...
}
Copier après la connexion

(3) Configuration HTTPS

Vous devez configurer des options spécifiques du protocole HTTPS, telles que l'activation du protocole HTTP/2, la désactivation de SSLv3, etc.

http2_push_preload on;  #启用HTTP/2协议的推送预加载
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  #指定启用的TLS协议版本
ssl_ciphers EECDH+AESGCM:EDH+AESGCM:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM;  #指定加密套件
ssl_prefer_server_ciphers on;  #常用加密套件优先顺序为服务端指定的值
ssl_session_cache shared:SSL:10m;  #指定SSL session缓存
ssl_session_timeout 10m;  #指定SSL session超时时间
Copier après la connexion

2. Optimisation des performances de sécurité de Nginx

Après le déploiement du service HTTPS, vous devez également faire attention aux problèmes d'optimisation des performances de sécurité suivants pour garantir la stabilité et la sécurité du service :

  1. Détecter la réponse OCSP

OCSP (Online Certificate Status Protocol) est utilisé pour détecter si un certificat a été révoqué. Dans la configuration HTTPS de Nginx, la détection de la réponse OCSP peut être effectuée via les procédures suivantes :

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
Copier après la connexion

Les points clés sont interprétés comme suit :

  • ssl_stapling on Activer la réponse OCSP
  • ssl_stapling_verify on Activer la vérification de la réponse OCSP
  • ssl_trusted_certificate /path /to/fullchain .pem Configurer la chaîne de certificats
  • résolveur 8.8.8.8 8.8.4.4 valide=300s Configurer le résolveur DNS
  • resolver_timeout 10s Configurer le temps de résolution DNS
    Le résolveur DNS doit être configuré en tant que résolveur de confiance reconnu, ici il est configuré comme DNS public de Google.
  1. Activer HSTS

HSTS (HTTP Strict Transport Security) empêche les utilisateurs d'être piratés vers des pages HTTP, augmentant ainsi le niveau de sécurité. Dans la configuration HTTPS de Nginx, vous pouvez activer HSTS comme suit :

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
Copier après la connexion

Les points clés sont expliqués comme suit :

  • max-age=31536000 Définir la durée de l'en-tête HSTS
  • includeSubDomains Activer tous les sous-domaines
  1. Activer le protocole de sécurité

Par défaut, Nginx active uniquement TLSv1 et TLSv1.2. Si vous devez activer d'autres protocoles de cryptage, vous pouvez le configurer de la manière suivante :

ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
Copier après la connexion

Les points clés sont interprétés comme suit :

  • . TLSv1.3 définit activé Le protocole de cryptage
  1. active l'algorithme de clé HMAC

Les données transmises via HTTPS nécessitent une clé pour crypter les données. L'utilisation de HMAC (code d'authentification de message basé sur le hachage) peut améliorer la sécurité de la transmission des données. La méthode pour activer HMAC dans le fichier de configuration Nginx est la suivante :

ssl_ciphers ... !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4 !SEED +AES256 !kEDH +SHA256 +HMAC;
Copier après la connexion

Les points clés sont interprétés comme suit :

  • AES256 Activer l'algorithme de chiffrement AES256
  • +SHA256 Activer la fonction de hachage SHA256
  • +HMAC Activer l'algorithme de clé HMAC

Conclusion

Cet article présente les principaux points de connaissance du déploiement HTTPS de Nginx et de l'optimisation des performances de sécurité. Dans le contexte des applications web modernes de plus en plus complexes, les exigences de sécurité et de performances du HTTPS sont également de plus en plus élevées. En tant que gestionnaire système, il est important de mettre constamment à jour vos réserves de connaissances et de maintenir une vision professionnelle des nouvelles technologies et des nouveaux environnements. . Très nécessaire et important.

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal