위의 답변은 부분적이었습니다. 나는이 일을하는 데 너무 많은 시간을 보냈다. 그것은 미쳤다. 내 미래에 대한 참고 사항은 다음과 같습니다.
저는 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. 서버를 시작하고 https : // localhost : 3000으로node server.js
이동합니다 . .
이 시점에서 서버 설정이 있습니다. 그러나 브라우저에 경고 메시지가 표시되어야합니다.
자체 서명 된 인증서를 chrome / windows 인증서 저장소에 CA에서 신뢰할 수있는 인증 기관으로 등록해야합니다.(크롬은 이것을 Windows에도 저장합니다.)
6 단계. Chrome에서 Dev Tools를 열고 보안 패널로 이동 한 다음 인증서보기를 클릭합니다.
단계 7. 세부 정보 패널로 이동하여 파일 복사를 클릭 한 다음 인증서 내보내기 마법사가 나타나면 아래와 같이 다음을 클릭합니다.
8 단계. DER 인코딩을 그대로두고 다음을 클릭 한 다음을 선택 Browse
하고 데스크톱과 같이 액세스하기 쉬운 폴더에 넣고 인증서 이름을 지정합니다.localhost.cer, then click Save and then Finish.
. 데스크톱에서 인증서를 볼 수 있어야합니다.
단계 9.chrome://settings/
URL 상자에 삽입하여 엽니 다 . 아래에서을 클릭 Advanced / Advanced Options
한 다음 아래로 스크롤하여을 찾습니다 Manage Certificates
.
10 단계. 신뢰할 수있는 루트 인증 기관 패널로 이동하고 가져 오기를 클릭합니다.
localhost.cer
8 단계에서 방금 내보내기를 마친 인증서 를 가져옵니다 .
단계 11. 찾아보기를 클릭하고을 찾은 localhost.cer
다음 기본값을 그대로두고 다음을 여러 번 클릭합니다.이 경고가 나타날 때까지 예를 클릭합니다.
12 단계. 모든 것을 닫고 Chrome을 다시 시작합니다. 그런 다음 https://localhost:3000
가면 다음이 표시됩니다.