2017-05-11 1 views
-2

첫 번째 일은 어떤 오류도 발생하지 않고 내 웹 사이트가 제대로 작동하고 있습니다.ExpressJS + SSL 자체 서명 + HTTPS

방금 ​​ReactJS를 사용하여 webapp를 구축했고 ExpressJS를 사용하여 서비스를 제공했습니다. 내가 HTTPS를 사용하여 시작하고 그런 식으로 서버를 설정하기로 결정

let fs = require('fs'); 
let express = require('express') 
let http = require('http') 
let https = require('https') 
let config = require('config') 
let server = express() 

let privateKey = fs.readFileSync('./config/key.pem', 'utf8') 
let certificate = fs.readFileSync('./config/cert.pem', 'utf8') 
let credentials = { key: privateKey, cert: certificate, passphrase: config.sslPhrase } 

let httpServer = http.createServer(server) 
let httpsServer = https.createServer(credentials, server) 

//Some routes... 

httpServer.listen(80) 
httpsServer.listen(443) 

내가 예상대로 내 서버가 하나 개의 예외로 실행 : 내가 기대 한 것은

enter image description here

:

나는 내 사이트도 쿠키 기밀 데이터를 해달라고

enter image description here

는, 일반의 모든 필드가없는 전자 비밀 번호.

사이트에 HTTPS를 구현하는 방법을 설명하는 자습서가 많이 있지만, 자습서에서도 동일한 결과를 보여줍니다. 내가 기대했던 것이 아니다.

제 질문의 일부는 다음과 같습니다. 왜 그런가요? 두 번째 부분은 다음과 같습니다. 어떻게해야합니까?

+0

자체 서명 된 인증서를 사용할 때 신뢰할 수없는 인증서 오류가 발생하는 이유는 무엇입니까? – Sasang

답변

1

왜 그런가?

인증서에 자체 서명되어 브라우저에서 자동으로 신뢰하지 않기 때문입니다. 통신은 안전하지만 브라우저는 인증 기관을 신뢰하지 않기 때문에 연결이 실제 도메인에서 온다고 신뢰할 수 있는지 여부를 알 수 없습니다.

어떻게해야합니까?

모든 브라우저에서이 문제를 해결하려면 신뢰가 브라우저에 내장되어있는 인증 기관 중 하나가 신뢰하는 인증서를 발급하는 서비스에서 인증서를 받아야합니다. 이 작업을 수행 할 수있는 무료 옵션은 Let's Encrypt입니다. 자신의 브라우저만으로 해결하려면 브라우저에 자체 서명 된 인증서를 신뢰하도록 알릴 수 있습니다.

모든 브라우저에서 자체 서명 된 인증서를 신뢰할 수 없도록 설정할 수 없습니다. 인증서 신뢰 시스템은 그렇게 작동하지 않습니다.

+0

여기서 [LetsEncrypt] (https://letsencrypt.org/)를 언급하면 ​​"어떻게해야합니까?"라고 생각합니다. – mscdex

+0

@mscdex - Lets Encrypt에 대한 참조를 추가했습니다. – jfriend00

+0

대단히 감사합니다 !!! 당신은 제가 많이 배울 수 있도록 도와주었습니다! –

관련 문제