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

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

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

Certbot 설치

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

Docker Compose로 실행 중인 Nginx 중단

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

인증서 발급

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

발급된 인증서 권한 설정 및 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/*

Docker Compose로 Nginx 재시작

sudo docker compose restart nginx

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

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

시스템 기본 Nginx 비활성화

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

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

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

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

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

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

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

Similar Posts

답글 남기기

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