ebson

[fform 정기 재배포] 4. ubuntu의 node에서 https 서버 생성할 수 있도록 설정하기 본문

NODEJS WEB PROJECT/DEVELOPMENT

[fform 정기 재배포] 4. ubuntu의 node에서 https 서버 생성할 수 있도록 설정하기

ebson 2022. 8. 15. 15:28

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

   

2024-07-01 캡처 추가함 - 폴더 그룹과 권한이 변경된 모습

 

  •  프라이빗 키 접근권한 수정

$sudo su

$cd /etc/letsencrypt/archive/ftclone-portfolio.link

$chmod 644 privkey1.pem 

 


 4. 직접 이동 및 파일 열어보며 권한 적용됨 확인, 인스턴스를 재실행하여 적용되도록 함



5. node 실행하여 https 서버 생성 로그 확인하기 

$cd /home/ubuntu/server

$npm run start

 



참고

https://ichi.pro/ko/web-aeb-baepo-react-express-nodejs-socket-io-mich-ubuntu-20-04-lts-x64-150056928526951

 https://velog.io/@alskt0419/Node.js-쉽게-https-적용-시키는-법 

https://newbedev.com/let-s-encrypt-ssl-couldn-t-start-by-error-eacces-permission-denied-open-etc-letsencrypt-live-domain-net-privkey-pem 

Comments