Powyższe odpowiedzi były częściowe. Spędziłem tyle czasu, żeby to działało, to szaleństwo. Uwaga dla mojego przyszłego ja, oto co musisz zrobić:
Pracuję na Windows 10, z Chrome 65. Firefox zachowuje się ładnie - wystarczy potwierdzić localhost jako wyjątek bezpieczeństwa i będzie działać. Chrome nie:
Krok 1. W swoim zapleczu utwórz folder o nazwie security
. będziemy w nim pracować.
Krok 2. Utwórz plik konfiguracyjny żądania o nazwie req.cnf
z następującą zawartością (autorstwo: @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
Objaśnienie tych pól znajduje się tutaj .
Krok 3. Przejdź do folderu zabezpieczeń w terminalu i wpisz następujące polecenie:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256
Krok 4. następnie poza security
folderem, w aplikacji ekspresowej zrób coś takiego: (autorstwo: @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)
})
Krok 5. Uruchom serwer node server.js
i przejdź do https: // localhost: 3000 .
W tym momencie mamy konfigurację serwera. Ale przeglądarka powinna wyświetlić komunikat ostrzegawczy.
Musimy zarejestrować nasz samopodpisany certyfikat jako zaufany urząd certyfikacji CA w magazynie certyfikatów Chrome / Windows. (Chrome również zapisuje to w oknach)
Krok 6. Otwórz Dev Tools w chrome, przejdź do panelu Security, a następnie kliknij View Certificate.
Krok 7. Przejdź do panelu Szczegóły, kliknij Kopiuj plik, a gdy pojawi się Kreator eksportu certyfikatów, kliknij Dalej, jak poniżej:
Krok 8. Pozostaw kodowanie DER, kliknij dalej, wybierz Browse
, umieść go w łatwo dostępnym folderze, takim jak Pulpit, i nazwij certyfikat localhost.cer, then click Save and then Finish.
. Certyfikat powinien być widoczny na komputerze.
Krok 9. Otwórz chrome://settings/
, wstawiając go w polu adresu URL. Kliknij poniżej, Advanced / Advanced Options
a następnie przewiń w dół, aby znaleźć Manage Certificates
.
Krok 10. Przejdź do panelu Zaufane główne urzędy certyfikacji i kliknij importuj.
Zaimportujemy localhost.cer
certyfikat, który właśnie zakończyliśmy eksportować w kroku 8.
Krok 11. kliknij przeglądaj, znajdź localhost.cer
, pozostaw wartości domyślne kliknij kilka razy dalej - dopóki nie pojawi się to ostrzeżenie, kliknij tak.
Krok 12. Zamknij wszystko i uruchom ponownie Chrome. Następnie jadąc do https://localhost:3000
Ciebie powinieneś zobaczyć: