상세 컨텐츠

본문 제목

[Node.Js] HTTPS 인증하고, 서버 운영하기

프로그래밍

by 경밤 2020. 1. 10. 14:04

본문

반응형

HTTPS 서버로 운영하려면 80 포트 433 포트를 각각 열어야 합니다. 그러나, 이것은 나중에 코드로 할 것 입니다.

먼저, 아래의 모듈을 불러와 주세요.

const http = require('http');
const fs = require('fs');
const https = require('https')

그 다음에는 Lets Encrypt 에서 ssl 인증서를 발급 받아야 합니다.

무료이나, 3개월마다 갱신해주어야 합니다. 갱신은 자동으로 해도 되고, 아니면 가끔 들어가서 갱신해도 됩니다.

Lets Encrypt를 설치하겠습니다.

sudo apt-get install git python2.7

letsencrypt는 python2.7을 권장하고있습니다. git은 letsencrypt를 클론하기 위해서 설치합니다.

cd /home/

letsencrypt를 다운로드받을 위치로 이동해주세요. 어느곳이던간에 상관 없습니다.

git clone https://github.com/letsencrypt/letsencrypt

letsencrypt를 해주시고, 다운로드 받은 곳으로 또 이동해주세요.

아까 /home에 받았다면 /home/letsencrypt가 되겠습니다.

./letsencrypt-auto certonly

이제 실행하시면 됩니다. 위 명령어를 입력하고, 나오는 결과는 약관 동의와 비슷한 형태인데, 도메인 이름이랑 이메일, 또 여러 질문에 답하면 됩니다. 버전 마다 다르니, 명시하지는 않겠습니다.

 

이제 설치가 완료되었습니다. 입력한 도메인명으로 /etc/letsencrypt/live에 폴더가 생겼습니다. 그러나, 속 내용은 알 필요 없습니다.

바로 코드 작성하시면 됩니다.

const ssl_options={
  cert:fs.readFileSync('/etc/letsencrypt/live/도메인명/fullchain.pem'),
  key:fs.readFileSync('/etc/letsencrypt/live/도메인명/privkey.pem')
}; 

app.js나 제너레이터를 써서 만들었으면 bin/www에 작성해주십시오. ssl 옵션 입니다.

var server = http.createServer(app).listen(80)
https.createServer(ssl_options, app).listen(443)

이렇게 https서버와 http서버를 같이 구축하여 운영할 수 있습니다.

 

감사합니다

반응형

관련글 더보기