Dieses Mal zeige ich Ihnen, wie Express HTTPS lokal testet und welche Vorsichtsmaßnahmen für Express gelten, um HTTPS lokal zu testen. Hier ist ein praktischer Fall, schauen wir uns das an.
Meine Umgebung
Eine virtuelle Ubuntu-Maschine von Amazon (AWS).
Knoten
openssl
Zertifikat generieren
Geben Sie den folgenden Befehl ein, um „localhost.key“ und „localhost.cert“ in Ihrem aktuellen Ordner zu generieren.
openssl genrsa -out localhost.key 2048 openssl req -new -x509 -key localhost.key -out localhost.cert -days 3650 -subj /CN=localhost
wobei „localhost“ der Domänenname ist. Wenn Sie zu einem anderen Domänennamen wechseln möchten, ersetzen Sie einfach alle oben genannten „localhost“ durch Ihre Domäne Name.
Nehmen Sie mich als Beispiel. Der Domänenname meiner virtuellen Maschine lautet xxx.compute.amazonaws.com
. Ersetzen Sie einfach alle oben genannten lokalen Hosts durch diesen Domänennamen generiert. ec2-34-220-96-9.us-west-2.compute.amazonaws.com.key
ec2-34-220-96-9.us-west-2.compute.amazonaws.com.cert
Update
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
Wenn Sie den privaten Schlüssel nicht mit einem Passwort schützen möchten, fügen Sie
-nodes.
plus
durch Ihren Domainnamen.-subj '/CN=localhost'
localhost
Referenz: Wie erstelle ich ein selbstsigniertes Zertifikat mit openssl?
CodeUm den folgenden Code auszuführen, müssen Sie zuerst das Paket
npm init npm i -S https express
installieren und die Datei index.js mit dem folgenden Inhalt erstellen.
#!/usr/bin/env node var https = require('https'); var fs = require('fs'); var express = require('express'); var host = 'xxx.compute.amazonaws.com'; // Input you domain name here. var options = { key: fs.readFileSync( './' + host + '.key' ), cert: fs.readFileSync( './' + host + '.cert' ), requestCert: false, rejectUnauthorized: false }; var httpApp = express(); var app = express(); app.get('/', function (req, res) { res.send('hi HTTPS'); }); httpApp.get('/', function (req, res) { res.send('hi HTTP'); }); httpApp.listen(80, function () { console.log('http on 80'); }); var server = https.createServer( options, app ); server.listen( 443, function () { console.log( 'https on 443' ); } );
Starten Sie den Server
sudo node index.js
Besuchen Geben Sie
in den Browser ein, um auf den HTTP-Server auf Port 80 zuzugreifen. Zeigen Sie an.http://xxx.compute.amazonaws.com/
hi HTTP
Geben Sie
an.https://xxx.compute.amazonaws.com/
hi HTTPS
Selbstsignierte, vertrauenswürdige Zertifikate für Node.js & Express.js
Ich glaube, Sie haben den Fall in diesem Artikel gelesen. Nachdem Sie die Methode gemeistert haben, achten Sie bitte auf andere verwandte Artikel auf der chinesischen PHP-Website, um weitere spannende Inhalte zu erhalten!
Empfohlene Lektüre:
Hintergrundverdunkelung der JS-OperationsseiteSo verwenden Sie die JQuery-Layur-Popup-Ebene in praktischen ProjektenDas obige ist der detaillierte Inhalt vonSo testen Sie HTTPS lokal mit Express. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!