letsencrypt 와 greenlock 으로 NodeJS서버에 https (SSL) 적용하기
2020 Sep 1
1 min read
1 min read
오늘은 ubuntu 환경에서 letsencrypt 와 greenlock 으로 NodeJS 서버에 무료로 https를 적용하는 방법을 알아보도록 하겠습니다.
https 를 쓰는 이유
암호화
교환하는 데이터를 암호화 하여 도청자로부터 안전하게 보호합니다.
Google 검색 엔진
https를 사용하면 구글 검색 엔진에 의해 더 상위에 노출 될 수 있습니다.
이 외에도 많은 장점을 가지고 있기 때문에 https를 적용하는 곳이 늘어나고 있습니다.
https는 도메인이 있어야 적용이 가능합니다.
letsencrypt
letsencrypt
는 무료로 https 인증서를 제공합니다. 90일마다 갱신을 해줘야 하지만 greenlock
으로 자동 갱신까지 구현해보도록 하겠습니다.
greenlock
자동으로 인증서를 갱신하기 위해 greenlock
를 설정합니다.
설치
yarn add greenlock-express yarn add greenlock
or
npm i greenlock-express npm i greenlock
greenlock
을 express 서버에 적용하기 위해 해당 라이브러리를 설치합니다.
config
npx greenlock init --config-dir ./src/greenlock.d --maintainer-email 'jon@example.com'
위의 명령어를 실행하여 greenlock config 파일을 src/greenlock.d 디렉토리에 생성합니다.
app.js 와 server.js 파일이 생성됩니다. (지우셔도 무방합니다.)
npx greenlock add --subject example.com --altnames example.com
위의 명령어를 실행하여 도메인을 설정에 추가합니다.
src/server.js
const app = require("./app.js"); require("greenlock-express") .init({ packageRoot: "project 경로", configDor: "./src/greenlock.d", cluster: false, maintainerEmail: "example@example.com" }) .serve(app);
위와 같이 설정하면 https (443), http (80) 포트로 서버가 실행됩니다.
주의 ! 인증서는 7일에 5번 까지 생성할 수 있습니다.
마치며
오늘은 무료 ssl 을 제공하는 letsencrypt를 이용하여 NodeJS 서버에 https 를 적용하여 보았습니다.
혹시 문제가 발생하거나 궁금한 점이 있으시면 댓글로 남겨주시면 감사하겠습니다.