Heim  >  Artikel  >  Web-Frontend  >  So stellen Sie https mithilfe von Nginx + Node bereit

So stellen Sie https mithilfe von Nginx + Node bereit

亚连
亚连Original
2018-06-19 17:43:472687Durchsuche

Dieser Artikel führt Sie hauptsächlich in die Schritte der Bereitstellung von https in Alibaba Cloud mithilfe von Bildern, Texten und Beispielcodes ein. Es hat einen gewissen Referenzwert für das Lernen oder Arbeiten braucht Freunde, kommt und lernt gemeinsam.

Origin

Kürzlich schreibe ich die Node+Mongodb-Version von Lingxi Micro Mall, daher muss ich mein eigenes https-Zertifikat dafür bereitstellen Lassen Sie uns Ihnen einen vollständigen Überblick über den Implementierungsprozess geben und einen Blick auf die detaillierte Einführung werfen.

Die Hauptunterschiede zwischen HTTPS und HTTP sind wie folgt:

1. Das https-Protokoll erfordert die Beantragung eines Zertifikats ab ca. Daher ist eine bestimmte Gebühr erforderlich.

2. http ist ein Hypertext-Übertragungsprotokoll und Informationen werden im Klartext übertragen, während https ein sicheres SSL-verschlüsseltes Übertragungsprotokoll ist.

3. http und https verwenden völlig unterschiedliche Verbindungsmethoden und verwenden unterschiedliche Ports. Ersteres ist 80 und letzteres ist 443.

4. Die HTTP-Verbindung ist sehr einfach und zustandslos; das HTTPS-Protokoll ist ein Netzwerkprotokoll, das auf dem SSL+HTTP-Protokoll basiert, das eine verschlüsselte Übertragung und Identitätsauthentifizierung durchführen kann und sicherer als das http-Protokoll ist.

Bewerben

Ich habe 2 Tage gebraucht, um das kostenlose https-Zertifikat zu bekommen. Es zeigt immer, dass es auf Alibaba ausverkauft ist Liegt es daran, dass https in letzter Zeit häufiger vorkommt?

Bereitstellung

Fileauth.txt in das angegebene Verzeichnis hochgeladen. Nach einigen Minuten wurde die Überprüfung genehmigt. In diesem Zeitraum gingen keine Überprüfungsanrufe ein. Die von Alibaba bereitgestellten Betriebs- und Bereitstellungsanweisungen sind sehr detailliert. Kopieren Sie sie einfach, aber achten Sie darauf, den Zertifikatsordner unter conf abzulegen, nicht im Nginx-Stammverzeichnis, wie in den Anweisungen erwähnt. Wenn Sie nach der ursprünglichen Methode von Alibaba vorgehen, wird dieser Fehler fopen:No such file or directory:fopen('/usr/local/nginx/conf/cert/214389510580391.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file) angezeigt, was bedeutet, dass es sich um ein Problem mit dem Zertifikatverzeichnis handelt.

Knoten-Reverse-Proxy

location / {
   proxy_pass http://127.0.0.1:4001;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

Knoten läuft immer noch wie gewohnt, es spielt keine Rolle https oder http, es wird von Nginx erledigt. Der erste Proxy-Pass ist ein Reverse-Proxy, und die nächsten drei Proxy-Set-Header übernehmen die Anfrage vollständig von mall.it577.net. Obwohl sie vom Frontend angefordert werden kann, ohne sie hinzuzufügen, wird req.originUrl dennoch in http:// aufgelöst. 127.0.0.1 :4001, dies wirkt sich auf die Entkopplung des WeChat-Zahlungsrückrufs notify_url aus, daher werden diese 3 Zeilen hinzugefügt.

Ergebnis

Sie können an der Adressleiste erkennen, dass https unterstützt wird.

Fallstricke

Der obige Prozess ist sehr einfach und kann grundsätzlich konfiguriert werden. Da mein auf Alibaba vorinstalliertes Nginx das https-Modul nicht enthält, muss ich das Installationspaket manuell herunterladen und neu kompilieren. Kopieren Sie abschließend die neu kompilierte ausführbare Nginx-Datei, ersetzen Sie sie und starten Sie den Dienst neu.

Es wurde ein Fehler gemeldet, der darauf hinweist, dass das SSL-Modul nicht gefunden werden kann

nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:123

Laden Sie die entsprechende Version des ngix-komprimierten Pakets herunter

wget http://nginx.org/download/nginx-1.12.1.tar.gz

Entpacken Sie es

tar zxvf nginx-1.12.1.tar.gz

Kompilieren Sie es mit Parametern, um das SSL-Modul zu erhalten

./configure --with-http_ssl_module

make

Stoppen Sie Nginx

/usr/local/nginx/sbin/nginx -s stop

Von Natürlich können Sie den Prozess abbrechen. Was ich online gefunden habe, sind drei Möglichkeiten, den Prozess abzubrechen

Ersetzen Sie das alte Nginx

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

Starten Sie Nginx neu und laden Sie es neu die conf-Konfigurationsdatei

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -s reload

Das Obige ist, dass ich es für alle kompiliert habe, ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Wie erreiche ich eine sekundäre Verknüpfung in js

Wie sollte Webpack mit Stilen umgehen?

So generieren Sie Wortbilder in js

Was sind die Referenzmethoden für Bibliotheken in jQuery

Das obige ist der detaillierte Inhalt vonSo stellen Sie https mithilfe von Nginx + Node bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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