2016-10-05 2 views
0

Express 서버에 HTTPS를 구성하려고합니다. this question's answers에서 다음 코드를 발견했습니다.Express.js HTTPS가 서버를 시작하지 않습니다.

console.log("Test 1"); 
var httpServer = http.createServer(app); 
console.log("Test 2"); 
var httpsServer = https.createServer(credentials, app); 
console.log("Test 3"); 
httpServer.listen(8080); 
console.log("Test 4"); 
httpsServer.listen(8443); 
console.log("Test 5"); 

문제 Test 1Test 2입니다 콘솔에 표시되는 유일한 것입니다. 그 줄 이후 아무 것도 달리지 않는 것 같습니다. 기본적으로 HTTP와 HTTPS 모두에서 동일한 Express 응용 프로그램을 실행하기를 원합니다.

이전에는 server = app.listen(port);을 사용하여 Express 서버를 시작했습니다.

아이디어가 있으십니까?

편집

노드의 응용 프로그램이 오류없이 계속 실행하지만, 단지 그 최종 console.log 문을 인쇄하지 않습니다.

var fs = require('fs'); 
var privateKey = fs.readFileSync('ssl/servertest.key', 'utf8'); 
var certificate = fs.readFileSync('ssl/servertest.crt', 'utf8'); 
var credentials = {key: privateKey, cert: certificate}; 

servertest.keyservertest.crt.

참고 : 온라인으로 공개하고 공개하는 것이 좋지 않다는 것을 알고 있습니다. 그냥 예를 들어 그것을 사용합니다. 프로덕션에 들어가기 전에 SSL 키를 다시 생성 할 것입니다.

+0

노드의 모든 코드가 비동기 적으로 실행되므로 createServer에 오류가 있다고 가정합니다 (자격 증명에 무엇이 있습니까?) – Keith

+0

@Keith 터미널이나 아무 것도 오류가 기록되지 않았습니다 –

+0

이상한. . 노드 응용 프로그램이 멈 춥니 다. 인증서에 올바른 키와 인증서가 있습니까? .. 어떤 문제없이 Express HTTPS를 사용합니다. 수행 한 작업에 대한 간단한 데모를 작성해 주시겠습니까? – Keith

답변

1

예, 개인 키는 암호로 보호되어 있습니다. 당신이 아니었다

Error: error:0906A068:PEM routines:PEM_do_header:bad password read 

확실하지 왜

내 시스템에서

나는 오류가 발생했다가, 어쩌면 노드 버전입니다.

여기에는 두 가지 옵션이 있습니다. 하나는 openSSL을 사용하여 키에서 비밀번호를 삭제하거나 passphrase 옵션을 통해 옵션에 비밀번호를 제공하는 것입니다.

관련 문제