📦 chore: Let's Encrypt SSL/TLS 인증서 발급 및 Nginx 설정 추가 #300
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🔨 테스크
Issue
📋 작업 내용
CloudFlare 제거 및 DNS 서비스(가비아) 포워딩 설정 변경
기존에 동작중이던 CloudFlare 서비스를 삭제하였습니다.
또한, 가비아의 DNS 포워딩 설정을 아래와 같이 처리하였습니다.
Let's Encrypt를 통한 SSL 인증서 발급
서버 인스턴스 내에
certbot
,python3-certbot-nginx
를 설치하였습니다.Nginx 설정
HTTP 요청을 HTTPS로 리다이렉션 처리하였으며, 인증서 발급을 위한 키페어 경로를 선언해주었습니다. (SSL 인증서 발급 명령어 치면 알아서 추가됩니다.)
SSL 인증서 재발급을 위한 crontab 설정
Let's Encrypt에서 발행해주는 DV(Domain Validation)은 90일을 주기로 만료됩니다. (인증서 보안 강화를 위해)
이에 따라 만료되기 이전에 자동으로 인증서를 재발급 받는 과정이 필요합니다.
서버 인스턴스에 crontab을 설정하였습니다. 서버에 접속 후
sudo crontab -l
입력시0 18 1 * * sudo certbot renew --pre-hook "sudo systemctl stop nginx" --post-hook "sudo systemctl restart nginx"
이 추가되었음을 보실 수 있습니다.해당 명령은 매월 1일 새벽 3시에 sudo certbot renew 명령어를 통해 인증서 재발급을 수행하며, 명령어를 실행 전과 후로 nginx를 멈추었다가 재실행 합니다. (갱신 시 nginx 서비스를 중단해야 하기에 잠시 서버의 연결이 끊길 수 있습니다. 시뮬레이팅 해본 결과 약 3~4초 정도 연결이 끊깁니다.)
www
Alias 경로 CORS 허용현재
www.denamu.site
경로로 요청이 들어올 경우 요청 자체는denamu.site
로 리다이렉션되지만, Origin이 달라 CORS 오류가 발생하고 있습니다.CloudFlare를 사용할때는 프록시 처리되기에 설정해줄 필요가 없었으나, 이제는 추가할 필요가 있어 추가 해 주었습니다.