คำตอบข้างต้นเป็นเพียงบางส่วน ฉันใช้เวลามากในการทำงานนี้มันบ้ามาก โปรดสังเกตตัวเองในอนาคตของฉันนี่คือสิ่งที่คุณต้องทำ:
ฉันกำลังทำงานบน Windows 10 กับ Chrome 65 Firefox ทำงานได้ดีเพียงแค่ยืนยันว่า localhost เป็นข้อยกเว้นด้านความปลอดภัยและจะใช้งานได้ Chrome ไม่:
ขั้นตอนที่ 1.ในแบ็กเอนด์ของคุณสร้างโฟลเดอร์ชื่อsecurity
. เราจะทำงานในนั้น
ขั้นตอนที่ 2.สร้างไฟล์กำหนดค่าคำขอที่req.cnf
มีเนื้อหาต่อไปนี้ (เครดิตไปที่: @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
คำอธิบายของเขตนี้อยู่ที่นี่
ขั้นตอนที่ 3ไปที่โฟลเดอร์ความปลอดภัยในเทอร์มินัลและพิมพ์คำสั่งต่อไปนี้:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout cert.key -out cert.pem -config req.cnf -sha256
ขั้นตอนที่ 4.จากนั้นนอกsecurity
โฟลเดอร์ในแอปด่วนของคุณให้ทำสิ่งนี้: (เครดิตไปที่ @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)
})
ขั้นตอนที่ 5เริ่มต้นเซิร์ฟเวอร์node server.js
และไปที่https: // localhost: 3000
ณ จุดนี้เรามีการตั้งค่าเซิร์ฟเวอร์ แต่เบราว์เซอร์ควรแสดงข้อความเตือน
เราจำเป็นต้องลงทะเบียนใบรับรองที่ลงนามด้วยตนเองของเราในฐานะผู้ออกใบรับรองที่เชื่อถือได้ของ CA ในที่เก็บใบรับรอง chrome / windows (chrome บันทึกสิ่งนี้ใน windows ด้วย)
ขั้นตอนที่ 6.เปิด Dev Tools ใน chrome ไปที่แผงความปลอดภัยจากนั้นคลิกที่ดูใบรับรอง
ขั้นตอนที่ 7.ไปที่แผงรายละเอียดคลิกคัดลอกไฟล์จากนั้นเมื่อตัวช่วยสร้างการส่งออกใบรับรองปรากฏขึ้นให้คลิกถัดไปด้านล่าง:
ขั้นตอนที่ 8ลาเข้ารหัส DER คลิกถัดไปเลือกใส่ไว้ในโฟลเดอร์ที่ง่ายต่อการเข้าถึงเช่นสก์ท็อปและชื่อใบรับรองBrowse
localhost.cer, then click Save and then Finish.
คุณควรจะเห็นใบรับรองของคุณบนเดสก์ท็อป
ขั้นตอนที่ 9.เปิดchrome://settings/
โดยใส่ลงในช่อง url ลงมาด้านล่างคลิกแล้วเลื่อนลงไปหาAdvanced / Advanced Options
Manage Certificates
ขั้นตอนที่ 10ไปที่แผง Trusted Root Certification Authorities แล้วคลิก import
เราจะนำเข้าlocalhost.cer
ใบรับรองที่เราเพิ่งส่งออกเสร็จในขั้นตอนที่ 8
ขั้นตอนที่ 11.คลิกเรียกดูค้นหาlocalhost.cer
ปล่อยให้ค่าเริ่มต้นคลิกถัดไปหลาย ๆ ครั้งจนกว่าคำเตือนนี้จะปรากฏขึ้นให้คลิกใช่
ขั้นตอนที่ 12ปิดทุกอย่างแล้วรีสตาร์ท Chrome จากนั้นเมื่อไปที่https://localhost:3000
คุณควรเห็น: