Maison > Opération et maintenance > Nginx > Analyser les détails de la configuration HTTPS et de la mise en œuvre de la gestion des certificats de Nginx

Analyser les détails de la configuration HTTPS et de la mise en œuvre de la gestion des certificats de Nginx

王林
Libérer: 2023-08-05 08:57:23
original
1012 Les gens l'ont consulté

Analyse des détails de la configuration Nginx HTTPS et de la mise en œuvre de la gestion des certificats

Dans le domaine de la sécurité des informations réseau, le protocole HTTPS est une technologie de communication sécurisée très importante. Il assure le cryptage, l'authentification de l'identité et la protection de l'intégrité du mécanisme de transmission des données sur Internet. Nginx est un serveur Web et un serveur proxy inverse hautes performances qui prend en charge non seulement le protocole HTTP, mais également le protocole HTTPS. Dans cet article, nous analyserons les détails d'implémentation de la configuration HTTPS et de la gestion des certificats de Nginx, et donnerons des exemples de code correspondants.

  1. Générer un certificat HTTPS
    Pour utiliser le protocole HTTPS, vous devez d'abord générer une paire de clés publiques et privées et un certificat SSL. Ces fichiers peuvent être générés à l'aide de l'outil openssl. Voici un exemple :
$ openssl genrsa -out private.key 2048
$ openssl req -new -key private.key -out csr.csr
$ openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
Copier après la connexion

Dans le code ci-dessus, private.key est le fichier de clé privée généré, csr.csr est le fichier de demande de certificat et < code>certificate .crt est le certificat SSL final généré. private.key是生成的私钥文件,csr.csr是证书请求文件,certificate.crt是最终生成的SSL证书。

  1. Nginx配置HTTPS
    在Nginx的配置文件中,可以通过添加以下几行配置来启用HTTPS:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
}
Copier après la connexion

上述代码中的listen指令定义了监听的端口和协议,ssl_certificate指令定义了SSL证书的路径,ssl_certificate_key指令定义了私钥文件的路径。

  1. 证书链和中间证书
    在一些情况下,SSL证书可能由多个证书组成,其中一个是SSL证书本身,其余的是中间证书。在Nginx的配置文件中,可以通过以下方式配置中间证书:
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;
    ssl_trusted_certificate /path/to/intermediate.crt;
}
Copier après la connexion

上述代码中的ssl_trusted_certificate指令定义了中间证书的路径。当浏览器与Nginx建立连接时,Nginx会将SSL证书链一同传输给浏览器,以供验证。

  1. 强制使用HTTPS
    在许多情况下,网站希望所有的HTTP请求都自动重定向到HTTPS。可以通过以下方式配置Nginx达到此目的:
server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}
Copier après la connexion

上述代码中的return

    Configuration Nginx HTTPS
      Dans le fichier de configuration Nginx, vous pouvez activer HTTPS en ajoutant les lignes de configuration suivantes :

    1. $ openssl x509 -in certificate.crt -text -noout
      Copier après la connexion
    2. La définition de la directive listen ci-dessus code Le port d'écoute et le protocole sont spécifiés, la directive ssl_certificate définit le chemin d'accès au certificat SSL et la directive ssl_certificate_key définit le chemin d'accès au fichier de clé privée.
        Chaînes de certificats et certificats intermédiaires
      • Dans certains cas, un certificat SSL peut être composé de plusieurs certificats, dont l'un est le certificat SSL lui-même et les autres sont des certificats intermédiaires. Dans le fichier de configuration Nginx, le certificat intermédiaire peut être configuré de la manière suivante :
      $ openssl req -in csr.csr -text -noout
      Copier après la connexion
        La directive ssl_trusted_certificate dans le code ci-dessus définit le chemin d'accès au certificat intermédiaire. Lorsque le navigateur établit une connexion avec Nginx, Nginx transmettra la chaîne de certificat SSL au navigateur pour vérification.
        1. Forcer HTTPS
      Dans de nombreux cas, les sites Web souhaitent que toutes les requêtes HTTP soient automatiquement redirigées vers HTTPS. Nginx peut être configuré pour y parvenir en :
      • $ openssl rsa -in private.key -check
        $ openssl x509 -noout -modulus -in certificate.crt | openssl md5
        $ openssl rsa -noout -modulus -in private.key | openssl md5
        Copier après la connexion
      • La directive return dans le code ci-dessus redirige toutes les requêtes HTTP vers HTTPS.
      • Gestion des certificats
      • Dans les applications réelles, les certificats SSL peuvent expirer ou devoir être mis à jour, et une gestion des certificats correspondante est requise. Voici quelques opérations courantes de gestion des certificats et un exemple de code correspondant :

      Afficher les informations du certificat SSL :

      $ openssl verify -CAfile intermediate.crt certificate.crt
      Copier après la connexion
      🎜🎜Afficher les informations de demande de certificat : 🎜🎜rrreee🎜🎜Vérifiez que le certificat SSL et la clé privée correspondent : 🎜🎜rrreee 🎜🎜Vérifiez la validité de la chaîne de certificats : 🎜🎜rrreee🎜Grâce aux opérations de gestion de certificat ci-dessus, vous pouvez visualiser, vérifier et mettre à jour le certificat SSL. 🎜🎜Résumé : 🎜Cet article analyse les détails d'implémentation de la configuration HTTPS et de la gestion des certificats de Nginx, et donne des exemples de code correspondants. Grâce aux opérations de configuration et de gestion de certificats ci-dessus, nous pouvons mettre en œuvre une communication HTTPS sécurisée sur Nginx et gérer efficacement les certificats SSL. 🎜

      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