[fform 정기 재배포] 4. ubuntu의 node에서 https 서버 생성할 수 있도록 설정하기
ubuntu20.04에서 node 서버에 ssl 키 등록하기
1. 프로젝트 폴더로 이동하여 필요한 라이브러리 설치하기
$npm install fs path https
2. express 앱 또는 인덱스 파일에 키 등록하고 https서버 생성하기
$sudo vi server/index.js
…
const express = require('express');
const fs = require('fs');
const path = require('path');
const HTTPS = require('https');
const app = express();
var path_root = ‘/etc/letsencrypt/live/ftclone-portfolio.link’
try {
const options = {
ca: fs.readFileSync(`${path_root}fullchain.pem`),
key: fs.readFileSync(path.resolve(process.cwd(), `${path_root}privkey.pem`), 'utf8').toString(),
cert: fs.readFileSync(path.resolve(process.cwd(), `${path_root}cert.pem`), 'utf8').toString(),
};
HTTPS.createServer(option, app).listen(5002, () => {
…
});
} catch (error) {
…
}
…
3. 노드 서버에서 ssl키를 실행할 수 있도록 권한 설정하기
$node server/index.js
- 제한된 그룹을 생성하고 그 그룹에게만 권한을 부여함
$sudo addgroup nodecert
$sudo adduser ubuntu nodecert
$sudo adduser root nodecert
- ssl키에 대하여 그룹에게 권한을 부여함
$sudo chgrp nodecert /etc/letsencrypt/live
$sudo chgrp nodecert /etc/letsencrypt/archive
$sudo chmod 770 /etc/letsencrypt/live
$sudo chmod 770 /etc/letsencrypt/archive
- 프라이빗 키 접근권한 수정
$sudo su
$cd /etc/letsencrypt/archive/ftclone-portfolio.link
$chmod 644 privkey1.pem
4. 직접 이동 및 파일 열어보며 권한 적용됨 확인, 인스턴스를 재실행하여 적용되도록 함
5. node 실행하여 https 서버 생성 로그 확인하기
$cd /home/ubuntu/server
$npm run start
참고