Maison > Article > Opération et maintenance > Comment configurer nginx pour utiliser le module SSL pour prendre en charge l'accès HTTPS
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)".
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".
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 nginxnginx -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
Problèmes rencontrés lors du processus d'installation
Erreur 1 :
nginx : [emerg] directive inconnue "ssl" dans /usr/local/. nginx/conf/nginx.conf:151Solution : 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 stopS'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 nginxTuez 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
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.
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!