Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📦 chore: Let's Encrypt SSL/TLS 인증서 발급 및 Nginx 설정 추가 #300

Merged
merged 2 commits into from
Dec 26, 2024

Conversation

asn6878
Copy link
Member

@asn6878 asn6878 commented Dec 26, 2024

🔨 테스크

Issue

📋 작업 내용

본 PR 이후부터는 더 이상 CloudFlare를 사용하지 않습니다.

CloudFlare 제거 및 DNS 서비스(가비아) 포워딩 설정 변경

기존에 동작중이던 CloudFlare 서비스를 삭제하였습니다.
또한, 가비아의 DNS 포워딩 설정을 아래와 같이 처리하였습니다.
image

Let's Encrypt를 통한 SSL 인증서 발급

서버 인스턴스 내에 certbot, python3-certbot-nginx 를 설치하였습니다.

$ sudo apt-get install certbot
$ apt-get install 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 허용

image

현재 www.denamu.site 경로로 요청이 들어올 경우 요청 자체는 denamu.site로 리다이렉션되지만, Origin이 달라 CORS 오류가 발생하고 있습니다.
CloudFlare를 사용할때는 프록시 처리되기에 설정해줄 필요가 없었으나, 이제는 추가할 필요가 있어 추가 해 주었습니다.

@asn6878 asn6878 added the 🔧 Chore 세팅 관련 label Dec 26, 2024
@asn6878 asn6878 self-assigned this Dec 26, 2024
Copy link

netlify bot commented Dec 26, 2024

Deploy Preview for denamu canceled.

Name Link
🔨 Latest commit 40e8aee
🔍 Latest deploy log https://app.netlify.com/sites/denamu/deploys/676d050c8a0d4f0008386ec2

Copy link
Collaborator

@CodeVac513 CodeVac513 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Collaborator

@Jo-Minseok Jo-Minseok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@asn6878 asn6878 merged commit 80e3b9b into main Dec 26, 2024
1 check passed
@asn6878 asn6878 deleted the feat/https-setting branch December 26, 2024 16:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🔧 Chore 세팅 관련
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[BE] CloudFlare, Netlify 의존성 제거
3 participants