[NodeJS] GreenLock

2020. 9. 3. 18:06개발/[NodeJS]

GreenLock이란?

NodeJS에서 Let's Encrypt를 사용해 SSL을 적용해주는 모듈이다.

SSL 을 사용해야 하는 이유는?

SSL은 Secure Socket Layer이다.

클라이언트와 서버 간 오고 가는 데이터를 암호화를 해준다. 그냥 HTTP 통신을 하면 주고 받는 데이터가 노출된다. 여기서 공공장소에서 와이파이로 로그인을 하는데 SSL도 적용 안 되어 있고, 와이파이가 해킹당해 있다면 우리의 비밀번호가 해커에게 전달이 된다.

원래 SSL은 인증서를 발급받아야 브라우저가 적용할 수 있다. 인증서는 정해진 몇몇 기관에서만 (돈 내고) 발급 가능했었다. 그래서 개인 웹사이트를 운영하는 사람들은 적용하기를 망설였었다. 돈이 그만큼 나가기 때문이다.

하지만 Let's Encrypt가 나와서 상황이 달라졌다. "무료"로 SSL 인증서를 발급해주기 때문인데 3개월마다 갱신해야하긴 하지만, 자동 갱신을 지원하기 때문에 큰 문제는 없다.

보안의 문제도 있지만 HTTP1보다 효율적인 HTTP2를 사용하기 위해서도 SSL 적용이 필요하다.

사용방법

  • 먼저 필요한 패키지들을 다운로드 받는다.
npm install greenlock-express

greenlock-express는 express뿐만 아니라 spdy, https, restify 등의 모듈과 함께 쓸 수 있다.

클러스터링을 할 때는 greenlock-cluster

koa를 쓴다면면 greenlock-koa

hapi라면 greenlock-hapi

바닐라 노드에 붙이려면 그냥 greenlock

커맨드라인 명령어로 쓰는 greenlock-cli

  • app 객체가 있는 파일 아래에 설정 객체를 만든다.
const express = require('express');
const app = express();
...

require('greenlock-express').init({
  packageRoot: __dirname,
  configDir: './greenlock.d',
  maintainerEmail: '여러분의@이메일.com',
})
  .server(app);
  • greenlock.d 폴더를 만들고 그 아래에 config.json 파일을 만들어 내용을 다음과 같이 넣는다.
{ "sites": [{ "subject": "zerocho.com", "altnames": ["zerocho.com"] }] } 

이렇게 하면 알아서 인증서 갱신까지 해준다.

'개발 > [NodeJS]' 카테고리의 다른 글

[NodeJS] body-parser  (0) 2020.09.03