Maison Opération et maintenance Nginx Comment configurer nginx pour prendre en charge https

Comment configurer nginx pour prendre en charge https

May 16, 2023 pm 03:49 PM
nginx https

1. Introduction

Le protocole http Hypertext Transfer Protocol est utilisé pour transférer des informations entre les navigateurs Web et les serveurs de sites Web. Le protocole http envoie du contenu en texte clair et ne fournit aucune forme de cryptage des données si un attaquant vous le permet. lire directement les informations contenues dans le message de transmission entre le navigateur Web et le serveur du site Web.

Par conséquent, le protocole http n'est pas adapté à la transmission de certaines informations sensibles, telles que les numéros de carte de crédit, les mots de passe et autres informations de paiement. résoudre le problème de http Cette faille du protocole nécessite l'utilisation d'un autre protocole : Secure Sockets Layer Hypertext Transfer Protocol https Pour la sécurité de la transmission des données, https ajoute le protocole SSL à HTTP. SSL s'appuie sur des certificats pour vérifier l'identité du serveur. serveur et crypte les communications entre le navigateur et le serveur.

2. Avantages de https

Bien que https ne soit pas absolument sécurisé, les institutions qui contrôlent les certificats racine et les organisations qui contrôlent les algorithmes de cryptage peuvent également mener des attaques de l'homme du milieu. Cependant, https reste le plus sécurisé. solution dans le cadre de l'architecture actuelle. Elle présente principalement les avantages suivants :

(1) L'utilisation du protocole https peut authentifier les utilisateurs et les serveurs, garantissant que les données sont envoyées au bon client et au bon serveur 

(2) Le protocole https est construit ; du protocole ssl+http et peut effectuer une transmission cryptée. Le protocole réseau pour l'authentification de l'identité est plus sécurisé que le protocole http, ce qui peut empêcher le vol ou la modification des données pendant la transmission et garantir l'intégrité des données.

(3) https est la solution la plus sécurisée sous l'architecture actuelle. Bien qu'elle ne soit pas absolument sûre, elle augmente considérablement le coût des attaques de l'homme du milieu.

(4) Google a ajusté l'algorithme de son moteur de recherche en août 2014 et a déclaré que "par rapport aux sites Web http équivalents, les sites Web utilisant le cryptage https seront mieux classés dans les résultats de recherche".

3. Inconvénients de https

Bien que https présente de grands avantages, relativement parlant, il présente encore des inconvénients :

(1) La phase de prise de contact du protocole https prend plus de temps et entraînera le chargement de la page. le temps est prolongé de près de 50 % et la consommation d'énergie est augmentée de 10 à 20 % ;

(2) la mise en cache des connexions https n'est pas aussi efficace que http, ce qui augmentera la surcharge de données et la consommation d'énergie, et même les mesures de sécurité existantes le feront être affecté ;

(3) Les certificats SSL coûtent de l'argent. Plus le certificat est puissant, plus le coût est élevé. Les sites Web personnels et les petits sites Web ne l'utiliseront généralement pas s'il n'est pas nécessaire.

(4) Les certificats SSL doivent généralement être liés à l'IP. Plusieurs noms de domaine ne peuvent pas être liés à la même IPv4. Les ressources ne peuvent pas prendre en charge cette consommation.

(5) La portée de cryptage du protocole https est également relativement limitée et a peu d'effet sur les attaques de pirates informatiques, les attaques par déni de service, le piratage de serveur, etc. Le plus critique est que le système de chaîne de crédit du certificat SSL n'est pas sûr, en particulier lorsque certains pays peuvent contrôler le certificat racine de l'autorité de certification, des attaques de l'homme du milieu sont également possibles.

4. Téléchargez certbot

Utilisez git download ici Si vous n'avez pas encore installé git, vérifiez comment

Comment configurer nginx pour prendre en charge httpsChanger de répertoire

cd /usr/local
Copier après la connexion

Cloner le référentiel git

git clone https: // github.com/certbot/certbot.git
Copier après la connexion

Une fois le clonage terminé, certbot apparaîtra dans le répertoire /usr/loca/ 看5, affichez CERTBOT

Basculez vers l'annuaire Certbot

R

cd /usr/local/certbot
Copier après la connexion
E Si le répertoire réussit, l'installation est réussie Certificat

Afficher le certificat actuel

./certbot-auto certificates
Copier après la connexion

La première exécution. installera certaines dépendances. Il y aura une demande de confirmation au milieu, entrez y pour commencer à demander le certificat (le certificat est valable 3 mois et doit être réappliqué après l'expiration) Méthode 1 : utiliser la vérification DNS, qui nécessite vous de configurer un nom de domaine. Personnellement, j'aime cette méthode./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d votre nom de domaine --manual --preferred-challenges dns- 01 certonly Par exemple :

Configurer un nom de domaine générique Comment configurer nginx pour prendre en charge https

Copier le code Le code est le suivant :

./certbot-auto --server https://acme-v02.api.letsencrypt.org/directory -d * .nl166.com --manual --preferred-challenges dns-01 certonly

Configurer le nom de domaine

Copiez le code Le code est le suivant :

./certbot-auto --server https: // acme-v02 .api.letsencrypt .org/directory -d api.nl166.com --manual --preferred-challenges dns-01 certonly

Configurer le nom de domaine de deuxième niveau

Copiez le code Le code est le suivant :

. /certbot-auto --server https: / /acme-v02.api.letsencrypt.org/directory -d *.api.nl166.com --manual --preferred-challenges dns-01 certonly

Comme indiqué dans l'image ci-dessus, il vous sera demandé de participer pour la première fois. Entrez simplement une adresse e-mail comme requis. Un e-mail vous sera envoyé le moment venu. Vous devez cliquer pour confirmer l'adresse e-mail, alors assurez-vous de la remplir. dans votre véritable adresse e-mail, puis confirmez-la comme requis. Si vous ne la confirmez pas, elle ne sera pas exécutée.

接下来会让你验证域名,按要求解析个txt类型的记录

Comment configurer nginx pour prendre en charge https

保存确认以后再回到服务器中确认

Comment configurer nginx pour prendre en charge https

上面这两个文件就是配置https用到的证书了

方式二:使用插件方式

我们先看看官方怎么说的

Comment configurer nginx pour prendre en charge https

这里我使用的是nginx(申请完会自动帮你重启nginx) 这种方式配置不了泛域名,只能一个一个添加

./certbot-auto --nginx -d api2.nl166.com
Copier après la connexion

Comment configurer nginx pour prendre en charge https

Comment configurer nginx pour prendre en charge https

解决上述报错,请注意,/usr/local/nginx 请替换为你的nginx实际安装位置安装lnmp

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

ln -s /usr/local/nginx/conf/ /etc/nginx
Copier après la connexion

再次执行申请

Comment configurer nginx pour prendre en charge https

中途会询问你请选择是否将http流量重定向到https,删除http访问。可根据自己的需求选择,我这里是c取消选择(实际上这一步可以直接不理,经测试,这一步没有选择前,访问网址https已经可以访问了。)

如果想省略询问这一步,可以添加certonly 该种方式只会生成证书,不做其余操作,证书配置需要自己手动添加 如下:

./certbot-auto certonly --nginx -d api2.nl166.com
Copier après la connexion

Comment configurer nginx pour prendre en charge https

如上图所示,如果你配置了监听443端口的server,他会帮你自动找到对应域名的配置文件,并添加下面两行,还把我格式打乱了,}号与上面{的缩进不对应了,不过不影响功能,这里不知道会不会根据nginx的版本选择是否添加ssl on;

因为我这个nginx版本是不需要这个的,较低版本需要添加ssl on;才能开启https访问。

如没有监听该域名的443端口,则会在如下位置添加信息

Comment configurer nginx pour prendre en charge https

其他方式请自行摸索

8、配置nginx支持https

# https server
 #
 server {
 listen 443 ssl;
 server_name api2.nl166.com;
 root /data/web/im.nl166.com;

 location / {
 index index.php;
 }

 #auth_basic "hello world";
 #auth_basic_user_file /usr/local/nginx/conf/auth/nl166.auth;

 location ~ \.php$ {
 include fastcgi_params;
 fastcgi_pass unix:/tmp/php-fcgi.sock;
 fastcgi_index index.php;
 fastcgi_param script_filename $document_root$fastcgi_script_name;
 }
 location ~ .*.(svn|git|cvs) {
 deny all;
 }

 ssl_certificate /etc/letsencrypt/live/api2.nl166.com/fullchain.pem; # managed by certbot
 ssl_certificate_key /etc/letsencrypt/live/api2.nl166.com/privkey.pem; # managed by certbot
 }
Copier après la connexion

较低版本需要增加ssl on;才能开启https访问。

9、使用shell脚本与定时任务定时续期证书

注意:为避免遇到操作次数的限制,加入 --dry-run 参数,可以避免操作限制,等执行无误后,再去掉进行真实的renew 操作。 方式一的续期

其中域名为/etc/letsencrypt/renewal/目录下的****.conf ,****就是你要填写的域名,比如我生成的时候是*.nl166.com,但是在实际生成的时候是没有*号的

/home/certbot-sh/au.sh 替换成你自己更新dns的脚本

如下:

复制代码 代码如下:

./certbot-auto renew --cert-name nl166.com --manual-auth-hook /data/shell/crontab/auto_update_httpscert. sh --dry-run

Comment configurer nginx pour prendre en charge https

把更新命令放到一个文件,我这里是放在了/data/shell/crontab/auto_update_httpscert.sh 内容如下 ,原来的auto_update_httpscert.sh 更改到/data/shell/cnl_update_httpscert.sh

Comment configurer nginx pour prendre en charge https

增加系统定时任务

crontab -e
Copier après la connexion

#每个星期天凌晨5点执行更新https证书操作

0 5 * * 0 sh /data/shell/crontab/auto_update_httpscert.sh

方式二的续期 如下:

./certbot-auto certonly --renew-by-default --nginx -d api2.nl166.com --dry-run
Copier après la connexion

Comment configurer nginx pour prendre en charge https

增加系统定时任务操作参考方式一

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Bienvenue sur nginx !Comment le résoudre ? Bienvenue sur nginx !Comment le résoudre ? Apr 17, 2024 am 05:12 AM

Pour résoudre l'erreur "Bienvenue sur nginx!", vous devez vérifier la configuration de l'hôte virtuel, activer l'hôte virtuel, recharger Nginx, si le fichier de configuration de l'hôte virtuel est introuvable, créer une page par défaut et recharger Nginx, puis le message d'erreur. disparaîtra et le site Web sera affiché normalement.

Comment communiquer entre les conteneurs Docker Comment communiquer entre les conteneurs Docker Apr 07, 2024 pm 06:24 PM

Il existe cinq méthodes de communication de conteneur dans l'environnement Docker : réseau partagé, Docker Compose, proxy réseau, volume partagé et file d'attente de messages. En fonction de vos besoins d'isolation et de sécurité, choisissez la méthode de communication la plus appropriée, par exemple en utilisant Docker Compose pour simplifier les connexions ou en utilisant un proxy réseau pour augmenter l'isolation.

Comment s'inscrire à phpmyadmin Comment s'inscrire à phpmyadmin Apr 07, 2024 pm 02:45 PM

Pour vous inscrire à phpMyAdmin, vous devez d'abord créer un utilisateur MySQL et lui accorder des autorisations, puis télécharger, installer et configurer phpMyAdmin, et enfin vous connecter à phpMyAdmin pour gérer la base de données.

Comment déployer le projet nodejs sur le serveur Comment déployer le projet nodejs sur le serveur Apr 21, 2024 am 04:40 AM

Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application

Comment générer une URL à partir d'un fichier HTML Comment générer une URL à partir d'un fichier HTML Apr 21, 2024 pm 12:57 PM

La conversion d'un fichier HTML en URL nécessite un serveur Web, ce qui implique les étapes suivantes : Obtenir un serveur Web. Configurez un serveur Web. Téléchargez le fichier HTML. Créez un nom de domaine. Acheminez la demande.

Que faire si l'installation de phpmyadmin échoue Que faire si l'installation de phpmyadmin échoue Apr 07, 2024 pm 03:15 PM

Étapes de dépannage en cas d'échec de l'installation de phpMyAdmin : Vérifiez la configuration système requise (version PHP, version MySQL, serveur Web) ; activez les extensions PHP (mysqli, pdo_mysql, mbstring, token_get_all) ; vérifiez les paramètres du fichier de configuration (hôte, port, nom d'utilisateur, mot de passe) ; autorisations (propriété du répertoire, autorisations de fichiers) ; vérifier les paramètres du pare-feu (liste blanche des ports du serveur Web) ; consulter les journaux d'erreurs (/var/log/apache2/error.log ou /var/log/nginx/error.log) ; phpMonAdmin

See all articles