Heim  >  Artikel  >  Betrieb und Instandhaltung  >  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

王林
王林nach vorne
2023-05-21 18:10:062178Durchsuche

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 / {
#
#
#}
#}
(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;
  }
}

Speichern und beenden

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

(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

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

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

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

(7) Starten Sie nginx

nginx

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

nginx -v

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen