Maison  >  Article  >  Opération et maintenance  >  Comment Nginx implémente la configuration SSL/TLS

Comment Nginx implémente la configuration SSL/TLS

WBOY
WBOYoriginal
2023-11-08 09:36:22981parcourir

Comment Nginx implémente la configuration SSL/TLS

La façon dont Nginx implémente la configuration SSL/TLS nécessite des exemples de code spécifiques

À l'ère actuelle où la sécurité des informations devient de plus en plus importante, le cryptage des sites Web est devenu un moyen important pour protéger la confidentialité des utilisateurs et l'intégrité des données. En tant que protocole de cryptage le plus couramment utilisé à l'heure actuelle, le protocole SSL/TLS peut garantir la sécurité des données lors de la transmission. En tant que serveur Web puissant, Nginx peut également mettre en œuvre une transmission cryptée de sites Web via la configuration SSL/TLS. Cet article présentera en détail comment Nginx implémente la configuration SSL/TLS et fournira des exemples de code spécifiques.

Tout d'abord, nous devons installer le logiciel Nginx sur le serveur, puis effectuer la configuration SSL/TLS correspondante dans le fichier de configuration. Voici un exemple de configuration de base Nginx SSL/TLS :

server {
    listen 443 ssl;

    server_name yourdomain.com;

    ssl_certificate /path/to/your.ssl.crt;
    ssl_certificate_key /path/to/your.ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLSv1.2:!ADH';

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    location / {
        # 其他相关配置
    }
}

Dans la configuration ci-dessus, nous utilisons d'abord la directive listen 443 ssl; pour définir Nginx afin d'écouter le port 443 et d'activer SSL. Utilisez ensuite les directives ssl_certificate et ssl_certificate_key pour spécifier respectivement les chemins d'accès au certificat SSL et à la clé privée. Utilisez ensuite la directive ssl_protocols pour préciser la version du protocole SSL/TLS, la directive ssl_ciphers pour préciser la priorité de l'algorithme de chiffrement, ssl_session_cache et ssl_session_timeoutLa directive code> est utilisée pour configurer la mise en cache des sessions SSL. listen 443 ssl; 指令定义Nginx监听443端口并启用SSL。然后使用 ssl_certificatessl_certificate_key 指令分别指定SSL证书和私钥的路径。接着使用 ssl_protocols 指令指定SSL/TLS协议的版本,ssl_ciphers 指令指定加密算法的优先级,ssl_session_cachessl_session_timeout 指令用于配置SSL会话缓存。

除了基本的SSL/TLS配置,我们还可以进一步配置SSL证书的优化参数、HTTPS重定向等。以下是一个完整的Nginx的SSL/TLS配置示例,包括了上述提到的优化参数和HTTPS重定向:

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

server {
    listen 443 ssl;
    server_name yourdomain.com;

    ssl_certificate /path/to/your.ssl.crt;
    ssl_certificate_key /path/to/your.ssl.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    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:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:TLSv1.2:!ADH';

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # 开启OCSP Stapling
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 10s;

    location / {
        # 其他相关配置
    }
}

在完整的SSL/TLS配置示例中,我们还使用了 return 301 https://$server_name$request_uri;

En plus de la configuration de base SSL/TLS, nous pouvons également configurer davantage les paramètres d'optimisation du certificat SSL, de la redirection HTTPS, etc. Ce qui suit est un exemple complet de configuration SSL/TLS de Nginx, incluant les paramètres d'optimisation et la redirection HTTPS mentionnés ci-dessus :

rrreee

Dans l'exemple de configuration SSL/TLS complet, nous utilisons également return 301 https : //$server_name$request_uri ; Implémente la redirection des requêtes HTTP vers HTTPS et ajoute la prise en charge de l'agrafage OCSP.

Il convient de noter que le certificat SSL, le chemin de la clé privée et le nom de domaine dans les exemples ci-dessus doivent être modifiés en conséquence en fonction de la situation réelle. De plus, lors de la configuration de SSL/TLS, vous devez veiller à protéger la sécurité du certificat et des fichiers de clé privée afin d'éviter les fuites ou les falsifications. 🎜🎜En bref, grâce à l'exemple de code ci-dessus, les lecteurs peuvent comprendre comment implémenter la configuration SSL/TLS dans Nginx et effectuer les configurations personnalisées correspondantes en fonction de la situation réelle pour garantir la transmission sécurisée des données du site Web. J'espère que cet article pourra aider les lecteurs intéressés par la configuration Nginx SSL/TLS. J'espère également que tout le monde pourra prêter attention à la sécurité du cryptage du site Web et protéger la confidentialité des utilisateurs et la sécurité des donné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!

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