Jawaban di atas sebagian. Saya telah menghabiskan begitu banyak waktu untuk membuat ini bekerja, itu gila. Catatan untuk diri saya di masa depan, inilah yang perlu Anda lakukan:
Saya sedang mengerjakan Windows 10, dengan Chrome 65. Firefox berperilaku baik - cukup konfirmasi localhost sebagai pengecualian keamanan dan itu akan berfungsi. Chrome tidak:
Langkah 1. di backend Anda, buat folder bernama security
. kami akan bekerja di dalamnya.
Langkah 2. buat file konfigurasi permintaan req.cnf
dengan nama konten berikut (kredit diberikan ke: @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
Penjelasan tentang bidang ini ada di sini .
Langkah 3. arahkan ke folder keamanan di terminal dan ketik perintah berikut:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256
Langkah 4. kemudian di luar security
folder, di aplikasi ekspres Anda lakukan sesuatu seperti ini: (kredit diberikan ke @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)
})
Langkah 5. mulai server node server.js
, dan buka https: // localhost: 3000 .
Pada titik ini kami memiliki pengaturan server. Tetapi browser harus menampilkan pesan peringatan.
Kami perlu mendaftarkan sertifikat yang ditandatangani sendiri, sebagai Otoritas Sertifikat tepercaya CA, di penyimpanan sertifikat chrome / windows. (chrome juga menyimpan ini di windows,)
Langkah 6. buka Dev Tools di chrome, buka panel Keamanan, lalu klik Lihat Sertifikat.
Langkah 7. pergi ke panel Details, klik Copy File, kemudian ketika Certificate Export Wizard muncul, klik Next seperti di bawah ini:
Langkah 8. tinggalkan encoding DER, klik next, pilih Browse
, taruh di folder yang mudah diakses seperti Desktop, dan beri nama sertifikat localhost.cer, then click Save and then Finish.
. Anda seharusnya dapat melihat sertifikat Anda di Desktop.
Langkah 9. Buka chrome://settings/
dengan memasukkannya ke dalam kotak url. Di bawah, klik Advanced / Advanced Options
, lalu gulir ke bawah untuk menemukan Manage Certificates
.
Langkah 10. Buka panel Otoritas Sertifikasi Root Terpercaya, dan klik impor.
Kami akan mengimpor localhost.cer
sertifikat yang baru saja kami ekspor pada langkah 8.
Langkah 11. klik browse, cari localhost.cer
, biarkan nilai default klik next beberapa kali - sampai peringatan ini muncul, klik yes.
Langkah 12. tutup semuanya, dan mulai ulang chrome. Kemudian, saat pergi ke https://localhost:3000
Anda harus melihat: