Maison  >  Article  >  Opération et maintenance  >  Comment configurer nginx pour utiliser le module SSL pour prendre en charge l'accès HTTPS

Comment configurer nginx pour utiliser le module SSL pour prendre en charge l'accès HTTPS

王林
王林avant
2023-05-21 18:10:062219parcourir

Contexte :

L'applet WeChat est utilisée dans le développement de projets, mais l'URL de configuration du serveur doit être https, donc le module SSL de nginx doit être configuré pour prendre en charge l'accès https. En d'autres termes, vous devez créer un site Web. avec le nom de domaine dmsdbj.com Il est nécessaire d'accéder via https://dmsdbj.com

SSL est appelé secure socket layer en anglais, secure socket layer. SSL est un certificat numérique qui utilise le protocole SSL pour établir un canal sécurisé entre le navigateur et le serveur web. Les informations sur les données sont transmises de manière sécurisée entre le client et le serveur.

Prérequis :

1 La configuration du module SSL nécessite d'abord ca. Certificat, le certificat peut être émis manuellement par vous-même ou demandé sur Alibaba Cloud. J'ai demandé le certificat sur Alibaba Cloud. (Pour l'émission manuelle, veuillez vous référer au lien en bas de l'article)

2. Le module SSL n'est pas installé par défaut. Si vous souhaitez utiliser ce module, vous devez spécifier le paramètre –with-http_ssl_module lors de la compilation. nginx.

Alibaba Cloud a acheté le certificat ca

Étapes de fonctionnement :

1. Téléchargez le certificat ca

1. Connectez-vous à Alibaba Cloud, sélectionnez "Console" - "Produits et services", puis sélectionnez "ca Certificate Service" dans la colonne "Sécurité (Cloud Shield)" (Sécurité des données)".

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

2. Cliquez sur "Télécharger" sur le certificat acheté, sélectionnez "nginx/tengine" sur la page nouvellement ouverte et cliquez sur "Télécharger le certificat pour nginx".

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

2. Installez le certificat dans le fichier de configuration nginx

Description du fichier : 1. Le fichier de certificat "nom du certificat.pem'' contient deux sections, veuillez ne supprimer aucune section. 2. Si le csr est créé par le système de certificat, il contient également : le fichier de clé privée du certificat "nom du certificat.key" (1) Créez le dossier cert dans le répertoire où se trouve le fichier de configuration nginx, et copiez tous les fichiers téléchargés dans le répertoire cert. Si vous créez vous-même un fichier csr lors de la demande de certificat, veuillez placer le fichier de clé privée correspondant dans le répertoire cert et nommez-le « nom du certificat.key »

(2) Ouvrez nginx dans le répertoire conf ; sous le répertoire d'installation de nginx. conf, recherchez :

# https server
# #server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols sslv2 sslv3 tlsv1;
# ssl_ciphers all:!adh:!export56:rc4+rsa:+high:+medium:+low:+sslv2:+exp;
# ssl_prefer_server_ciphers on;
# location / {
#
#
#}
#}

(3) Modifiez-le en (les attributs commençant par ssl parmi les attributs suivants sont directement liés à la configuration du certificat, veuillez copier ou ajuster les autres attributs en fonction de votre situation réelle) :

server {
  listen 443;
  server_name localhost;
  ssl on;
  root html;
  index index.html index.htm;
  ssl_certificate  cert/证书名称.pem;
  ssl_certificate_key cert/证书名称.key;
  ssl_session_timeout 5m;
  ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:ecdhe:ecdh:aes:high:!null:!anull:!md5:!adh:!rc4;
  ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
  ssl_prefer_server_ciphers on;
  location / {
    root html;
    index index.html index.htm;
  }
}

Enregistrez et quittez.

(4) Redémarrez nginx

nginx -s reload

(5) Accédez à votre site via https et testez la configuration d'installation du certificat du site. Entrez https://dmsdbj.com dans le navigateur, comme indiqué. dans la figure ci-dessous, la configuration est réussie

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

Problèmes rencontrés lors du processus d'installation

Erreur 1 :

nginx : [emerg] directive inconnue "ssl" dans /usr/local/. nginx/conf/nginx.conf:151

Solution :

Cette erreur peut être provoquée par deux situations :

Cas 1 : Le format du fichier de configuration est incorrect

Lien de référence de la solution :

Cas 2 : Le SSL. le module n'est pas installé

Le module ssl n'est pas installé par défaut. Si vous souhaitez utiliser ce module, vous devez spécifier le paramètre --with-http_ssl_module lors de la compilation de nginx.

Solution :

nginx n'a pas le module http_ssl_module. , apportez simplement la configuration --with-http_ssl_module lors de la compilation et de l'installation, mais la situation actuelle est que mon nginx a déjà été installé. Comment ajouter le module est en fait très simple. expliquer : Mon nginx Le répertoire d'installation est le répertoire /usr/local/nginx, et mon package de code source se trouve dans le répertoire /usr/local/src/nginx-1.3.6

(1) Basculez vers le package de code source :

cd /root/nginx-1.13.6

(2) Informations de configuration :

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

(3) Une fois la configuration terminée, exécutez make pour compiler. N'effectuez pas make install, sinon ce sera une installation par écrasement

mark

(4) Sauvegardez ensuite le fichier. nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

(5) installé d'origine Arrêtez nginx La commande normale est simplement nginx -s stop

nginx -s stop

S'il ne peut pas être arrêté, tuez simplement le processus directement. ps aux | grep process name pour afficher le numéro pid occupé par le processus.

ps aux|grep nginx

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

Tuez simplement le pid détecté. La commande kill -9 pid est utilisée pour terminer le processus. Vous devez d'abord tuer le pid correspondant à root avant de pouvoir procéder aux trois pids person suivants.

kill -9 10922
kill -9 28276
kill -9 28277
kill -9 28278

(6) Écrasez le nginx d'origine avec le nginx

cp ./objs/nginx /usr/local/nginx/sbin/

nouvellement compilé(7) Démarrez nginx

nginx

(8) Utilisez la commande suivante pour vérifier s'il a été ajouté avec succès.

nginx -v

Erreur 2 :

nginx : [emerg] le paramètre "ssl" nécessite ngx_http_ssl_module dans /usr/local/nginx/conf/nginx.conf:148

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

Solution :

La solution à cette situation fait référence à la première erreur. La solution à la deuxième situation est suffisant.

Erreur trois :

arrêt de nginx... nginx : [emerg] bio_new_file("/usr/local/nginx/conf/cert/214291778530222.pem") a échoué (ssl : erreur :02001002 :bibliothèque système : fopen : aucun fichier ou répertoire de ce type : fopen('/usr/local/nginx/conf/cert/214291778530222.pem','r') error:2006d080:bio routines:bio_new_file:no such file) a échoué, utilisez la fermeture forcée.

Comment configurer nginx pour utiliser le module SSL pour prendre en charge laccès HTTPS

Solution :

Cela peut être dû à un emplacement de stockage incorrect du chemin du certificat, et tant que le chemin absolu est écrit, une erreur sera signalée, quel que soit Windows ou Linux.

Placez le fichier de certificat dans le répertoire où se trouve nginx.conf.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer