Hintergrund:
Das WeChat-Applet wird in der Projektentwicklung verwendet, aber die Serverkonfigurations-URL muss https sein, daher muss das SSL-Modul von Nginx so konfiguriert werden, dass es den https-Zugriff unterstützt. Mit anderen Worten, Sie müssen eine Website erstellen mit dem Domainnamen dmsdbj.com Der Zugriff ist über https://dmsdbj.com erforderlich.
SSL wird auf Englisch Secure Socket Layer genannt. SSL ist ein digitales Zertifikat, das das SSL-Protokoll verwendet, um einen sicheren Kanal zwischen dem Browser und dem Webserver einzurichten und Dateninformationen sicher zwischen dem Client und dem Server zu übertragen. Voraussetzungen:
1 ca-Zertifikat, ca-Zertifikat kann von Ihnen selbst ausgestellt oder bei Alibaba Cloud beantragt werden. Ich habe das Zertifikat bei Alibaba Cloud beantragt. (Informationen zur manuellen Ausgabe finden Sie unter dem Link am Ende des Artikels.)
2. Das SSL-Modul ist nicht standardmäßig installiert. Wenn Sie dieses Modul verwenden möchten, müssen Sie beim Kompilieren den Parameter –with-http_ssl_module angeben nginx.
Alibaba Cloud hat das CA-Zertifikat gekauft
Vorgangsschritte:
1. Melden Sie sich bei Alibaba Cloud an, wählen Sie „Konsole“ – „Produkte und Dienste“ und wählen Sie „ca Certificate Service“ in der Spalte „Sicherheit (Cloud Shield)“ (Datensicherheit)“.
2. Klicken Sie auf dem gekauften Zertifikat auf „Herunterladen“, wählen Sie auf der neu geöffneten Seite „nginx/tengine“ aus und klicken Sie auf „Zertifikat für nginx herunterladen“.
2. Installieren Sie das Zertifikat in der Nginx-Konfigurationsdatei Dateibeschreibung: 1. Die Zertifikatsdatei „Zertifikatname.pem“ enthält zwei Abschnitte, bitte löschen Sie keinen Abschnitt. 2. Wenn die CSR vom Zertifikatsystem erstellt wird, enthält sie außerdem: die private Schlüsseldatei des Zertifikats „Zertifikatname.key“ (1) Erstellen Sie den Ordner „cert“ in dem Verzeichnis, in dem sich die Nginx-Konfigurationsdatei befindet, und kopieren Sie alle heruntergeladenen Dateien dorthin das Zertifikatsverzeichnis. Wenn Sie bei der Beantragung eines Zertifikats selbst eine CSR-Datei erstellen, legen Sie die entsprechende private Schlüsseldatei im Zertifikatsverzeichnis ab und nennen Sie sie „Zertifikatname.key“ (2). Öffnen Sie nginx im Verzeichnis „conf“. Suchen Sie im Nginx-Installationsverzeichnis. conf-Datei:# 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 / { # # #} #}
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; } }
(4) Starten Sie nginx neu.
nginx -s reload
(5) Greifen Sie über https auf Ihre Site zu und testen Sie die Installationskonfiguration des Site-Zertifikats, wie gezeigt In der Abbildung unten ist die Konfiguration erfolgreich.
Während des Installationsprozesses sind Fehler 1 aufgetreten:
nginx: [emerg] unbekannte Direktive „ssl“ in /usr/local/ nginx/conf/nginx.conf:151
Lösung: Dieser Fehler kann durch zwei Situationen verursacht werden:
Fall 1: Das Konfigurationsdateiformat ist falsch Lösungsreferenzlink:
Fall 2: Das SSL Modul ist nicht installiert Das SSL-Modul ist standardmäßig nicht installiert. Wenn Sie dieses Modul verwenden möchten, müssen Sie beim Kompilieren von Nginx den Parameter --with-http_ssl_module angeben. Diese Situation führt auch zu Fehler 2.
Lösung:
Nginx fehlt das Modul http_ssl_module. Bringen Sie beim Kompilieren und Installieren einfach die Konfiguration --with-http_ssl_module mit, aber die aktuelle Situation ist, dass mein Nginx bereits installiert wurde Erklären Sie: Mein Nginx Das Installationsverzeichnis ist das Verzeichnis /usr/local/nginx und mein Quellcodepaket befindet sich im Verzeichnis /usr/local/src/nginx-1.3.6
(1) Wechseln Sie zum Quellcodepaket:
cd /root/nginx-1.13.6
(2) Konfigurationsinformationen:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
(3) Führen Sie nach Abschluss der Konfiguration make install aus, da es sonst zu einer überschreibenden Installation kommt.
mark
(4) Sichern Sie dann die Datei ursprünglich installiertes nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
(5) Stoppen Sie nginx. Der normale Befehl ist nur nginx -s stop
nginx -s stop
Wenn es nicht heruntergefahren werden kann, beenden Sie den Prozess einfach direkt. ps aux |. grep Prozessname, um die vom Prozess belegte PID-Nummer anzuzeigen.
ps aux|grep nginx
kill -9 10922 kill -9 28276 kill -9 28277 kill -9 28278
cp ./objs/nginx /usr/local/nginx/sbin/
nginx
nginx -v
Fehler 2:
nginx: [emerg] Der Parameter „ssl“ erfordert ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:148
Lösung:
Die Lösung für diese Situation bezieht sich auf Fehler eins. Die Lösung auf die zweite Situation ist ausreichend.
Fehler drei:
Nginx stoppen... nginx: [emerg] bio_new_file("/usr/local/nginx/conf/cert/214291778530222.pem") fehlgeschlagen (ssl: error:02001002:system Library: fopen:keine solche Datei oder kein solches Verzeichnis:fopen('/usr/local/nginx/conf/cert/214291778530222.pem','r') error:2006d080:bio routines:bio_new_file:no such file) ist fehlgeschlagen
Lösung:
Dies kann durch den falschen Speicherort des Zertifikatspfads verursacht werden. Solange der absolute Pfad geschrieben wird, wird unabhängig von Windows oder Linux ein Fehler gemeldet.
Legen Sie die Zertifikatsdatei in das Verzeichnis, in dem sich nginx.conf befindet.
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!