본문 바로가기

컴퓨터

https 프로토콜 사용하기

1. 환경

OS 웹 프레임워크
Ubuntu NodeJS

2. 포트포워딩

외부 내부
80 3000
443 4000

3. 인증서 발급

sudo apt update
sudo apt install letsencrypt -y
sudo certbot certonly --manual -d [도메인]

  1) 몇가지 질문을 하는데 읽어보고 응답하자. 

  2) 토큰과 URL을 알려주는데 엔터를 누르지 않고 다음 단계를 진행한다.

  3) 새 터미널을 열고 URL로 들어가면 토큰이 출력되도록 코딩한다.

// main.js
app.get('/.well-known/acme-challenge/알려준 URL', (req, res)=> {
  res.send('알려준 키');
});

  4) 원래 터미널로 돌아가 엔터를 친다.

  5) 이 과정에서 뭔가 잘못되면 서버 컴퓨터를 재부팅하고 다시 시도하자.

4. 인증서 확인

su -
cd /etc/letsencrypt/live/도메인/

  만약 인증서를 삭제하려면 위의 도메인 디렉토리를 삭제해버리면 된다.

5. 서버프로그램 작성: main.js

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

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

http.createServer(app).listen(3000);
https.createServer(httpsOptions, app).listen(4000);

6. https 접속

  443포트 서버는 일반권한으로는 실행시킬 수 없다. root 권한으로 접속한 후 서버를 실행시킨다.

7. 인증서 자동 갱신

crontab에 자동 갱신 명령을 추가한다.

1) 크론탭 편집

sudo crontab -e

편집기를 선택하라고 한다. 편리한 것을 선택한다.

2) 내용 추가

0 12 * * * /usr/bin/certbot renew --quiet

 

'컴퓨터' 카테고리의 다른 글

inetcpl.cpl  (0) 2019.04.01
mongojs 모듈  (0) 2019.03.30
003 Props 소품  (0) 2019.03.18
002 Learn the Basics 기초 배우기  (0) 2019.03.18
gethostbyaddr  (0) 2019.03.17