Programming

node.js, let's encrypt로 https 지원하기

사상의지평선 2017. 12. 14. 13:18

let's encrypt 에서 발급받은 무료 인증서를 사용하여 node.js 서버에서

https를 지원하는 방법을 알아보자.


이 강좌에서는 let's encrypt로 이미 키를 받은 상태로 가정한다. 

인증서 받는 방법에 대해서는 다른 강좌를 참고하기 바란다.



1. let's encrypt CA 인증서를 다운받기

$wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem.txt

(브라우져에 내용이 표시 되는데 이 데이터를 ca.pem으로 저장하자.)



2. code에 모듈 추가


var fs = require('fs');
var https = require('https');




3. https 옵션 설정


var options = {
key: fs.readFileSync('privkey.pem'),
cert: fs.readFileSync('fullchain.pem'),
ca: fs.readFileSync('ca.pem'),
rejectUnauthorized : false
}


마지막 rejectUnauthorized 옵션은 간단히 암호화 목적으로 사용할때만 false로 두며

보안성을 강화하기 위해서는 true로 두는것이 좋다.


//ssl mode
server = https.createServer(options, app).listen(myServerPort, function () {
callback(null);
});


myServerPort는 본인의 서비스 포트 번호를 지정하거나 변수를 지정한다.