Die obigen Antworten waren teilweise. Ich habe so viel Zeit damit verbracht, das zum Laufen zu bringen, es ist verrückt. Hinweis für mein zukünftiges Ich: Folgendes müssen Sie tun:
Ich arbeite unter Windows 10 mit Chrome 65. Firefox verhält sich gut - bestätigen Sie einfach localhost als Sicherheitsausnahme und es wird funktionieren. Chrome nicht:
Schritt 1. Erstellen Sie in Ihrem Backend einen Ordner mit dem Namen security
. Wir werden darin arbeiten.
Schritt 2. Erstellen Sie eine Anforderungskonfigurationsdatei req.cnf
mit dem folgenden Inhalt (Gutschrift geht an: @Anshul )
req.cnf:
[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = Country initials like US, RO, GE
ST = State
L = Location
O = Organization Name
OU = Organizational Unit
CN = www.localhost.com
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = www.localhost.com
DNS.2 = localhost.com
DNS.3 = localhost
Eine Erklärung dieser Felder finden Sie hier .
Schritt 3. Navigieren Sie zum Sicherheitsordner im Terminal und geben Sie den folgenden Befehl ein:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256
Schritt 4.security
Führen Sie dann außerhalb des Ordners in Ihrer Express-App Folgendes aus: (Gutschrift geht an @Diego Mello)
backend
/security
/server.js
server.js:
const express = require('express')
const app = express()
const https = require('https')
const fs = require('fs')
const port = 3000
app.get('/', (req, res) => {
res.send("IT'S WORKING!")
})
const httpsOptions = {
key: fs.readFileSync('./security/cert.key'),
cert: fs.readFileSync('./security/cert.pem')
}
const server = https.createServer(httpsOptions, app)
.listen(port, () => {
console.log('server running at ' + port)
})
Schritt 5. Starten Sie den Server node server.js
und gehen Sie zu https: // localhost: 3000 .
Zu diesem Zeitpunkt haben wir das Server-Setup. Der Browser sollte jedoch eine Warnmeldung anzeigen.
Wir müssen unser selbstsigniertes Zertifikat als vertrauenswürdige Zertifizierungsstelle für Zertifizierungsstellen im Chrome / Windows-Zertifikatspeicher registrieren. (Chrome speichert dies auch in Windows)
Schritt 6. Öffnen Sie Dev Tools in Chrome, gehen Sie zum Sicherheitsbereich und klicken Sie auf Zertifikat anzeigen.
Schritt 7. Gehen Sie zum Detailfenster, klicken Sie auf Datei kopieren und klicken Sie dann, wenn der Zertifikatsexport-Assistent angezeigt wird, wie folgt auf Weiter:
Schritt 8. Verlassen Sie die DER-Codierung, klicken Browse
Sie auf Weiter, wählen Sie , legen Sie sie in einem leicht zugänglichen Ordner wie Desktop ab und benennen Sie das Zertifikat localhost.cer, then click Save and then Finish.
. Sie sollten Ihr Zertifikat auf dem Desktop sehen können.
Schritt 9. Öffnen Sie, chrome://settings/
indem Sie es in das URL-Feld einfügen. Klicken Sie unten auf Advanced / Advanced Options
und scrollen Sie nach unten, um zu suchen Manage Certificates
.
Schritt 10. Wechseln Sie zum Bereich Vertrauenswürdige Stammzertifizierungsstellen, und klicken Sie auf Importieren.
Wir werden das localhost.cer
Zertifikat importieren, das wir gerade in Schritt 8 exportiert haben.
Schritt 11. Klicken Sie auf Durchsuchen, suchen Sie die localhost.cer
, lassen Sie die Standardwerte einige Male auf Weiter klicken - bis diese Warnung angezeigt wird, klicken Sie auf Ja.
Schritt 12. Schließen Sie alles und starten Sie Chrome neu. Wenn https://localhost:3000
Sie dann zu gehen, sollten Sie sehen: