티스토리 탈출해서 워드프레스 구축하기 2025년 10월 최신판 (4)

4편: HTTPS 인증서 발급과 적용으로 워드프레스 웹사이트 보안 강화하기

이번 글에서는 무료 SSL 인증서 발급 도구인 Certbot을 사용해 HTTPS 환경을 구축하는 과정을 설명합니다. 안전한 웹사이트 운영을 위한 필수 단계입니다.

1. Certbot 설치

  • 서버에 Certbot 패키지를 설치합니다. Ubuntu 기준:
sudo apt update
sudo apt install -y certbot
sudo apt install -y python3-certbot-nginx

2. Docker Compose로 실행 중인 Nginx 중단

  • 인증서 발급 시 80, 443 포트를 Certbot이 사용해야 하므로 Nginx(또는 웹서버) 컨테이너를 중지합니다.
sudo docker compose stop nginx

3. 인증서 발급

  • 도메인 주소 기반으로 Certbot을 실행해 SSL 인증서 발급을 진행합니다.
sudo certbot certonly --standalone -d 도메인주소.com
  • 도메인 이름은 실제 사용하는 도메인으로 바꾸세요.

4. 발급된 인증서 권한 설정 및 certs 폴더 이동

  • 보통 인증서 파일은 /etc/letsencrypt/live/도메인주소.com/에 생성됩니다.
  • 인증서와 키 파일을 워드프레스 설정이 쉬운 곳(예: 프로젝트 내 certs 폴더)으로 복사 및 권한 조정합니다.
mkdir -p ./certs
sudo cp /etc/letsencrypt/live/도메인주소.com/fullchain.pem ./certs/
sudo cp /etc/letsencrypt/live/도메인주소.com/privkey.pem ./certs/
sudo chown $(whoami):$(whoami) ./certs/*
sudo chmod 644 ./certs/*

5. Docker Compose로 Nginx 재시작

sudo docker compose restart nginx

6. 인증서 자동 갱신 설정 (Crontab)

  • Certbot 인증서는 90일 유효하며, 자동 갱신을 위해 크론탭에 아래 명령어 추가합니다.
sudo crontab -e
  • 크론탭에 다음 내용 추가 (매일 새벽 3시에 갱신 시도)
0 3 * * * certbot renew --quiet --deploy-hook "docker compose restart nginx"

7. 시스템 기본 Nginx 비활성화

  • 서버에 기본 설치된 Nginx는 Docker Nginx와 충돌할 수 있으니 중지하고 비활성화합니다.
sudo systemctl stop nginx
sudo systemctl disable nginx

8. 클라우드플레어에서 HTTPS 설정

  • 클라우드플레어 접속 후 SSL/TLS 설정에서 전체(엄격) 모드 권장
  • 자동 HTTPS 리다이렉트 설정 확인

9. default.conf 파일 수정하여 HTTPS 리다이렉트 활성화

  • Nginx config 내 HTTP 요청을 HTTPS로 리다이렉트하는 설정 주석 해제 또는 추가
server {
listen 80;
server_name 도메인주소.com;

return 301 https://$host$request_uri;
}


server {
listen 443 ssl;
server_name 도메인주소.com;

ssl_certificate /etc/nginx/certs/fullchain.pem;
ssl_certificate_key /etc/nginx/certs/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;

client_max_body_size 100M;

location / {
proxy_pass http://wordpress:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
  • 수정 후 Nginx 재시작
sudo docker compose restart nginx

10. 도메인 주소로 워드프레스 기본 설정

  • 도메인 주소로 접속
  • 워드프레스 관리자 → 설정 → 일반에서
  • ‘워드프레스 주소(URL)’와 ‘사이트 주소(URL)’에 설정되어 있는 주소를 http://에서 https:// 로 변경

이 단계들을 수행하면 워드프레스 사이트가 HTTPS로 안전하게 운영됩니다.
나머지는 실제 경험하면서 더 좋은 방법이 있으면 업데이트하도록 하겠습니다.
감사합니다.

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다