So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

王林
Freigeben: 2023-05-21 18:10:06
nach vorne
2237 Leute haben es durchsucht

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)“.

So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs2. 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“.

So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

2. Installieren Sie das Zertifikat in der Nginx-Konfigurationsdatei

So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

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 / {
#
#
#}
#}
Nach dem Login kopieren
(3) Ändern Sie es in (die Attribute, die mit ssl beginnen, unter den folgenden Attributen stehen in direktem Zusammenhang mit der Zertifikatskonfiguration, bitte kopieren Sie andere Attribute oder passen Sie sie entsprechend Ihrer tatsächlichen Situation an) :
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;
  }
}
Nach dem Login kopieren

Speichern und beenden

(4) Starten Sie nginx neu.

nginx -s reload
Nach dem Login kopieren

(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:151So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

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
Nach dem Login kopieren

(2) Konfigurationsinformationen:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
Nach dem Login kopieren

(3) Führen Sie nach Abschluss der Konfiguration make install aus, da es sonst zu einer überschreibenden Installation kommt.

mark
Nach dem Login kopieren

(4) Sichern Sie dann die Datei ursprünglich installiertes nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
Nach dem Login kopieren

(5) Stoppen Sie nginx. Der normale Befehl ist nur nginx -s stop

nginx -s stop
Nach dem Login kopieren

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
Nach dem Login kopieren

Töten Sie einfach die erkannte PID. Der Befehl kill -9 pid wird verwendet, um den Prozess zu beenden. Sie müssen zuerst die zu root gehörende PID löschen, bevor Sie mit den folgenden drei Nobody-PIDs fortfahren können.

kill -9 10922
kill -9 28276
kill -9 28277
kill -9 28278
Nach dem Login kopieren

(6) Überschreiben Sie das ursprüngliche Nginx mit dem gerade kompilierten Nginx

cp ./objs/nginx /usr/local/nginx/sbin/
Nach dem Login kopieren

(7) Starten Sie nginx

nginx
Nach dem Login kopieren

(8) Überprüfen Sie mit dem folgenden Befehl, ob es erfolgreich hinzugefügt wurde.

nginx -v
Nach dem Login kopieren

Fehler 2:So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

nginx: [emerg] Der Parameter „ssl“ erfordert ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:148

So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

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

So konfigurieren Sie Nginx für die Verwendung des SSL-Moduls zur Unterstützung des HTTPS-Zugriffs

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage