Heim  >  Artikel  >  Web-Frontend  >  So testen Sie HTTPS lokal mit Express

So testen Sie HTTPS lokal mit Express

php中世界最好的语言
php中世界最好的语言Original
2018-06-07 09:33:311586Durchsuche

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

  1. Eine virtuelle Ubuntu-Maschine von Amazon (AWS).

  2. Knoten

  3. 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.certUpdate

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

hinzu, um den Inhalt festzulegen das Zertifikat. Ersetzen Sie das

durch Ihren Domainnamen.-subj '/CN=localhost'localhostReferenz: 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 HTTPGeben Sie

ein, um auf den HTTPS-Server an Port 443 zuzugreifen. Zeigen Sie

an.https://xxx.compute.amazonaws.com/hi HTTPS

Referenz

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-Operationsseite


So verwenden Sie die JQuery-Layur-Popup-Ebene in praktischen Projekten

Das 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!

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