Ubuntu 서버에 Nginx를 웹 서버로 사용하여 Python 웹 애플리케이션에 HTTPS를 적용하고,
카페24 DNS 설정으로 TXT 인증을 완료하여 SSL 자동 갱신까지 구성하는 과정입니다.
Let's Encrypt 인증서는 90일 주기로 만료되므로 DNS TXT 방식의
자동 갱신을 위해 API 기반 스크립트를 사용하거나 자동 갱신을 준비해야 합니다.
1단계: Nginx 및 Certbot 설치
먼저 Ubuntu 서버에 Nginx와 Certbot을 설치합니다.
bash
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx -y
코드를 사용할 때는 주의가 필요합니다.
2단계: Nginx 서버 블록 설정
Python 앱을 프록시하는 Nginx 설정 파일(예: /etc/nginx/sites-available/my-python-site.conf)을 열어 server_name이 정확하게 설정되어 있는지 확인합니다.
nginx
server {
listen 80;
server_name example.com www.example.com; # 본인 도메인으로 변경
location / {
# Python 앱(uWSGI, Gunicorn, FastAPI 등)으로 프록시
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote-addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
코드를 사용할 때는 주의가 필요합니다.
설정을 저장한 뒤 Nginx를 테스트하고 리로드합니다.
bash
sudo nginx -t
sudo systemctl reload nginx
코드를 사용할 때는 주의가 필요합니다.
3단계: 카페24 도메인 TXT 레코드 인증 및 발급
DNS TXT 챌린지를 활용해 인증서를 발급합니다.
bash
sudo certbot certonly --manual --preferred-challenges dns --key-type rsa -d example.com -d www.example.com
코드를 사용할 때는 주의가 필요합니다.
_acme-challenge TXT 레코드 값을 확인합니다.dig -t TXT _acme-challenge.example.com 명령어로 등록 확인 후, Certbot에서 Enter를 눌러 발급을 완료합니다.
4단계: Nginx SSL 설정 및 적용
Nginx 설정(.../sites-available/...)을 수정하여 443 포트(HTTPS)를 설정하고, fullchain.pem 및 privkey.pem 경로를 지정합니다.
댓글목록
등록된 댓글이 없습니다.