Maison > Opération et maintenance > Nginx > Comment implémenter la configuration HTTPS de Nginx

Comment implémenter la configuration HTTPS de Nginx

WBOY
Libérer: 2023-11-08 09:23:12
original
1452 Les gens l'ont consulté

Comment implémenter la configuration HTTPS de Nginx

Comment implémenter la configuration HTTPS de Nginx nécessite des exemples de code spécifiques

Avant-propos

Avec le développement d'Internet et l'amélioration de la sensibilisation à la sécurité, de plus en plus de sites Web commencent à activer le protocole HTTPS pour protéger la confidentialité et la sécurité des utilisateurs. En tant que serveur Web open source hautes performances, Nginx peut non seulement configurer HTTP, mais également HTTPS. Cet article expliquera comment implémenter la configuration HTTPS de Nginx et joindra des exemples de code spécifiques pour votre référence et votre utilisation.

1. Générer un certificat et une clé privée

Pour activer le protocole HTTPS, vous devez d'abord générer un certificat SSL et une clé privée. Le certificat SSL est utilisé pour vérifier l'identité du serveur et la clé privée est utilisée pour crypter et déchiffrer les données transmises. Vous pouvez utiliser des certificats signés par diverses autorités de certification (CA) ou des certificats auto-signés.

La méthode pour générer un certificat auto-signé est la suivante :

  1. Ouvrez le terminal et saisissez la commande suivante dans la ligne de commande :
openssl req -x509 -newkey rsa:2048 -nodes -sha256 -keyout private.key -out certificate.crt -subj "/CN=www.example.com"
Copier après la connexion

Où, private.key est le nom du fichier de clé privée, et certificate .crt est le nom du fichier de certificat, www.example.com est le nom de domaine du serveur, qui peut être modifié selon les situation réelle. private.key是私钥文件名,certificate.crt是证书文件名,www.example.com是服务器的域名,可以根据实际情况进行修改。

  1. 输入上述命令后,将被要求输入一些证书相关的信息,包括国家、州、城市、组织等。按照提示输入即可。
  2. 输入完毕后,会在当前目录下生成私钥文件private.key和证书文件certificate.crt

二、编辑Nginx配置文件

生成证书和私钥后,需要编辑Nginx的配置文件,启用HTTPS协议。以下是一个简单的Nginx配置示例:

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /path/to/certificate.crt;  # 证书文件路径
    ssl_certificate_key /path/to/private.key;   # 私钥文件路径

    location / {
        # 其他配置...
    }
}
Copier après la connexion

其中,listen 443 ssl;表示使用HTTPS协议,监听443端口;server_name www.example.com;指定服务器的域名;ssl_certificatessl_certificate_key分别指定证书和私钥的文件路径。

三、重启Nginx服务

配置文件编辑完成后,需要重启Nginx服务,使配置生效。在终端中输入以下命令:

sudo service nginx restart
Copier après la connexion

输入密码后,Nginx服务将会重启。

四、配置HTTP跳转HTTPS

如果要将所有HTTP请求都跳转到HTTPS,可以在配置文件中添加以下代码:

server {
    listen 80;
    server_name www.example.com;

    return 301 https://$server_name$request_uri;
}
Copier après la connexion

其中,listen 80;表示监听80端口(即HTTP协议);return 301 https://$server_name$request_uri;表示将所有请求跳转到对应的HTTPS地址。

五、配置强制HTTPS访问

如果要强制所有请求都通过HTTPS协议进行访问,可以在Nginx配置文件中添加以下代码:

server {
    listen 80;
    server_name www.example.com;

    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name www.example.com;

    ssl_certificate /path/to/certificate.crt;
    ssl_certificate_key /path/to/private.key;

    # 其他配置...
}
Copier après la connexion

配置中的第一个server块和第二个server块分别监听80端口和443端口,分别处理HTTP和HTTPS请求。配置中的return 301 https://$server_name$request_uri;

    Après avoir entré la commande ci-dessus, il vous sera demandé de saisir certaines informations relatives au certificat, notamment le pays, l'état, la ville, l'organisation, etc. Suivez simplement les instructions et entrez.

    Une fois la saisie terminée, le fichier de clé privée private.key et le fichier de certificat certificate.crt seront générés dans le répertoire actuel.

    🎜2. Modifiez le fichier de configuration Nginx 🎜🎜Après avoir généré le certificat et la clé privée, vous devez modifier le fichier de configuration Nginx et activer le protocole HTTPS. Voici un exemple simple de configuration Nginx : 🎜rrreee🎜 Parmi eux, listen 443 ssl; signifie utiliser le protocole HTTPS et écouter sur le port 443 ; server_name www.example.com ; spécifie le nom de domaine du serveur ; ssl_certificate et ssl_certificate_key spécifient respectivement les chemins de fichier du certificat et de la clé privée. 🎜🎜3. Redémarrez le service Nginx 🎜🎜Après avoir modifié le fichier de configuration, vous devez redémarrer le service Nginx pour que la configuration prenne effet. Entrez la commande suivante dans le terminal : 🎜rrreee🎜Après avoir saisi le mot de passe, le service Nginx redémarrera. 🎜🎜4. Configurez HTTP pour passer à HTTPS🎜🎜Si vous souhaitez passer toutes les requêtes HTTP à HTTPS, vous pouvez ajouter le code suivant au fichier de configuration : 🎜rrreee🎜 Parmi eux, écoutez 80 ; signifie écouter 80 ports (c'est-à-dire le protocole HTTP) ; return 301 https://$server_name$request_uri; signifie transmettre toutes les requêtes à l'adresse HTTPS correspondante. 🎜🎜5. Configurez l'accès HTTPS forcé🎜🎜Si vous souhaitez forcer l'accès à toutes les requêtes via le protocole HTTPS, vous pouvez ajouter le code suivant au fichier de configuration Nginx : 🎜rrreee🎜Le premier serveur bloc dans la configuration et le deuxième bloc server écoute respectivement le port 80 et le port 443 pour gérer respectivement les requêtes HTTP et HTTPS. return 301 https://$server_name$request_uri; dans la configuration force la requête HTTP à passer à l'adresse HTTPS correspondante. 🎜🎜Conclusion🎜🎜Grâce aux étapes ci-dessus, nous pouvons implémenter la configuration HTTPS de Nginx, et nous pouvons choisir d'effectuer un saut HTTP vers HTTPS ou de forcer l'accès HTTPS selon les besoins. Bien entendu, les applications réelles impliquent également d'autres configurations détaillées, telles que la définition de la version du protocole SSL, de la suite de chiffrement, du HSTS, etc. J'espère que cet article pourra vous fournir des références pour rendre votre site Web plus sécurisé et plus 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!

É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