Heim > Artikel > Web-Frontend > So stellen Sie https mithilfe von Nginx + Node bereit
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!