Server/Linux

NestJS-AWS-PM2-EC2-NGINX-Certbot 서버 열어주기

Juzdalua 2022. 5. 12. 18:30

 

-- DNS를 먼저 셋팅한다.

0. EC2 Setting

sudo apt-get update
sudo apt-get install nginx
sudo apt-get install certbot
npm i -g pm2

 

1. PM2 연동

# repository

pm2 start dist/main.js

 

2. http 접속 허용하기

server {

	listen 80;
	server_name DNS주소;

	location / {
		proxy_pass		http://127.0.0.1:3000;
		proxy_set_header	upgrade $http_upgrade;
		proxy_set_header 	Connection keep-alive;
		proxy_set_header	Host $host;
		proxy_cache_bypass	$http_upgrade;
		proxy_set_header	x-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header 	X-Forwarded-Proto $scheme;
	}
}

완료되면 nginx를 재부팅한다.

sudo service nginx restart
sudo service nginx reload

 

3. Certbot으로 ssl인증서 연동. https 연결 허가하기

# 인증서 목록 확인
sudo certbot certificates

# 인증서 발급받기
sudo certbot certonly --standalone -d DNS주소
sudo certbot --nginx // server를 끄지 않아도 됨

인증서를 발급받으려면 다음 조건을 만족해야한다.

-포트가 열려있어야함

-서버가 죽어야함

 

Certbot은 무료로 인증서를 발급해주고 유효기간은 3개월이다.

기간이 도래하면 자동으로 갱신해준다.

 

최종적으로 conf파일은 Certbot이 자동으로 변경시켜준다.