[Node.js] 무료 SSL 인증서 적용 및 HTTPS 서버 구축 방법
(Greenlock Express 버전 : 2.8.8, 글쓴날 : 2020.02.09)
* 글 쓴 날 기준으로 Greenlock Express는 버전4~까지 나온 상태이지만 이 글에서는 버전2.8.8을 사용합니다.
* SSL 인증서 적용을 위해서는 ip주소가 아닌 도메인이 필요합니다!
1. SSL 인증서 적용하기
1) SSL 인증서 선택하기
SSL 인증서는 수많은 선택지가 있으며, 크게 무료와 유료로 나뉩니다.
무료 인증서의 경우 해당 인증서를 적용하여 서비스 도중 보안 문제가 발생하여 피해를 입었을 시 배상금 및 보증책임을 지지 않는 조건으로 보급하고 있습니다.
(보통의 경우이므로 자세한 것은 아래의 공식 홈페이지를 참조해주세요!)
이 글에서는 Let's Encrypt에서 제공하는 무료 SSL 인증서를 사용합니다.
* 무료
Let's Encrypt(우리가 사용할 인증서!) : Let's Encrypt 공식 홈페이지
WoSign : WoSign 공식 홈페이지
AWS Certificate : AWS Certificate 공식 홈페이지
CloudFlare SSL : CloudFlare SSL 공식홈페이지
* 유료
Verisign : Verisign 공식 홈페이지
GoDaddy : GoDaddy 공식 홈페이지
GlobalSign : GlobalSign 공식 홈페이지
Comodo(Sectigo) : Comodo(Sectigo) 공식 홈페이지
Thawte : Thawte 공식 홈페이지
GeoTrust : GeoTrust 공식홈페이지
DigiCert : DigiCert 공식 홈페이지
2) certbot-auto 설치 (Let's Encrypt, SSL 인증서 발급 및 갱신 프로그램)
wget https://dl.eff.org/certbot-auto
* Certbot 공식 홈페이지 : Certbot 공식 홈페이지
3) certbot-auto 접근 권한 설정
chmod 755 certbot-auto (실행 가능하게만 설정하시면 됩니다.)
4) certbot-auto 실행
(실행하기 전 켜놓은 서버가 있으시다면 종료하여 HTTP포트(80), HTTPS포트(443)를 비워주세요!)
sudo ./certbot-auto certonly --standalone
5) 도메인 입력 및 기타 절차
인증서를 적용할 도메인을 입력해주세요. 만약 서브 도메인이 있으시면 ,(쉼표) 혹은 띄어쓰기로 구분하여 차례로 적어주시면 됩니다.
그 후
사용자 이메일 입력, 서비스 약관 동의 확인, 이메일로 수신 여부 확인 같은 절차를 거치면 잠시 후...
Congratulations!
라는 글과 함께 인증서가 발급됩니다!
2. HTTPS 서버 구축하기
1) Greenlock Express 패키지 설치 (주의! version : 2.8.8)
npm install greenlock-express@2.8.8
* npm 및 패키지 설치에 관해 궁금하시다면 ☞ [Node.js] npm 소개와 설치 및 사용법
* Greenlock 공식 홈페이지 : Greenlock 공식 홈페이지
* Greenlock Express npm 주소 : Greenlock Express npm 주소
2) SSL 인증서 설정 객체 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
// SSL 인증서 설정 객체 생성 (Let's Encrypt)
const lex = require('greenlock-express').create({
version: 'draft-11', // 인증서 버전 (버전2)
configDir: '/etc/letsencrypt', // 인증서 pem 위치
server: 'https://acme-v02.api.letsencrypt.org/directory',
approveDomains: (opts, certs, cb) => {
if (certs) {
opts.domains = ['example.com', 'www.example.com']; // 도메인 및 서브 도메인까지 입력
}
else {
opts.email = 'example@example.com'; // 사용자 이메일 입력
opts.agreeTos = true;
}
cb(null, { options: opts, certs });
},
renewWithin: 81 * 24 * 60 * 60 * 1000,
renewBy: 80 * 24 * 60 * 60 * 1000,
});
|
3) redirect-https 패키지 설치
(클라이언트에서 HTTP로 접속시 HTTPS로 자동 리다이렉트 해주는 패키지입니다.)
npm install redirect-https
4) 서버 실행 코드 작성
1
2
|
https.createServer(lex.httpsOptions, lex.middleware(app)).listen(process.env.SSL_PORT || 443);
http.createServer(lex.middleware(require('redirect-https')())).listen(process.env.PORT || 80);
|
여기까지 Node.js에서 무료 SSL 인증서 적용 및 HTTPS 서버 구축 방법이었습니다.
이 글은 Node.js 및 Linux 환경에 익숙하신 분들을 대상으로 작성한 글이어서 다소 어려울 수 있으나, 위의 과정을 천천히 따라오시다 보면 문제없이 Node.js 환경에서 무료로 HTTPS 서버를 구축하실 수 있으실 겁니다.
감사합니다!
'Deprecated' 카테고리의 다른 글
[Go] Go 언어 소개와 설치 및 컴파일 방법 (4) | 2020.02.12 |
---|---|
[Node.js] PM2 소개와 설치 및 사용법 (0) | 2020.02.11 |
[Node.js] npm 소개와 설치 및 사용법 (3) | 2020.02.10 |
[React Native] React Navigation 설치 및 사용법 (12) | 2020.02.07 |
블로그 첫 시작 첫 글 (2) | 2020.02.07 |