본문 바로가기
Sesac 웹 풀스택[새싹X코딩온]

[Linux:Ubuntu]http 서버 https로 변경해서 node, react 프로젝트 배포

by 이쟝 2023. 3. 21.

Cafe24 도메인 AWS EC2에 연결하기 (Route53)

AWS 인증서 발급 받아 https 적용하기 : aws certificate https

nginx let's encrypt로 https 적용하기

ubuntu - Let's Encrypt으로 Nginx에 무료 SSL 적용

 

https 서버로 바꾸기 위한 절차

1. 도매인 구매 후, EC2 서버를 https로 변경한다. (보안그룹에 443 port 열어놔야한다. : https 서버라서) => 시간 좀 걸림

2. https로 변경되었으면 리눅스서버(우분투)에서 Let's Encrypt 인증서 발급한다.

3. 인증서가 발급 되었으면 받은 공개키와 비밀키위치를 nginx와 연결한다. 

4. 그럼 https로 react 프로젝트가 열리는데 그 다음에는 node 프로젝트에 공개키와 비밀키 위치를 연결한다.


  • 인증서를 받고 나서, 아래에 있는 .pem 파일을 연결해야 한다.

nginx에 ssl 인증서 파일 연결하기

server {
        listen 443 ssl default_server;
        server_name bandari.store;

        ssl on;
        ssl_certificate  /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;


        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

        location / {
                root /home/ubuntu/example/client/build;
                index index.html index.htm;
                try_files $uri /index.html;
        }
}

nginx 오류 날 때 vi /etc/nginx/nginx.conf의 user가 root로 되어있는지 확인하기


node에 ssl 인증서 파일 연결하기

  • letsencrypt에 있는 .pem 파일을 복사해서..  server폴더 안에 server.js 부분과 함께 있는 곳에 옮겼다.(sudo cp pem파일이름 경로, sudo chmod -R 700 live)

const express = require('express');
const app = express();
const session = require('express-session');
const fs = require('fs');

const options = {
  ca: fs.readFileSync('./fullchain.pem'),
  key: fs.readFileSync('./privkey.pem', 'utf8'),
  cert: fs.readFileSync('./cert.pem', 'utf8'),
};

const https = require('https').createServer(options, app);

....

https.listen(process.env.PORT, () => {
  console.log(`${process.env.PORT} server running`);
});

 

  • 기존 node는 http로 돌렸는데 변경하고 나서 https서버로 돌렸다...!
  • node를 https로 바꾸지 않고, EC2 서버랑 nginx만 https로 바꾸면 node와 db axios요청을 할 때 오류가 생긴다...!(당연하게도...)
  • 처음에는 nginx에만 연결하면 될 줄 알았는데 node와도 연결해야 한다....!

http -> https 서버로 바꾸는 거 쉽지 않다...사실 node를 build하고 해야 한다는데.. 아직 거기까지는 하지 못했다.. 그래도 여기까지라도 한게 어디인가 싶긴 하다..!

내가 알아볼 수 있게만 기억나는 것만 적었다..!

 

https://bandari.store/

 

BANDARI

 

bandari.store