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는 본인의 서비스 포트 번호를 지정하거나 변수를 지정한다.