도메인 발급 및 연결은 아래 게시물을 참고하여 진행하였다.
https://developer-ping9.tistory.com/320
HTTPS 적용을 위해 SSL 인증서 발급을 받아야한다.
SSL 인증서 발급을 위해 Certbot을 이용하였다.
아래의 절차를 따른다.
$ sudo snap install core; sudo snap refresh core
$ sudo apt-get remove certbot
$ sudo snap install --classic certbot
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
$ sudo certbot --nginx
# 1)
server {
listen 80; # 80포트로 받을 때
server_name [도메인주소];
return 301 https://[도메인주소]$request_uri;
}
# 2)
server {
listen 443 ssl http2;
server_name [도메인주소];
# ssl 인증서 적용하기
ssl_certificate /etc/letsencrypt/live/[도메인주소]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[도메인주소]/privkey.pem;
location / {
proxy_pass http://localhost:3000;
}
location /api {
proxy_pass http://localhost:8080;
charset utf-8;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 3)
server {
if ($host = [도메인주소]) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name [도메인주소];
return 404; # managed by Certbot
}
이제 연결이 완료되었다.
참고: https://velog.io/@coastby/Nginx-SSL-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0