카테고리 없음

워드프레스 무료 SSL 적용 및 자동 갱신 설정 방법

디노의 삶 2025. 4. 21. 06:36
728x90

Let’s Encrypt를 이용해 워드프레스 사이트에 100% 무료 SSL 인증서를 적용하고, Certbot을 통해 자동 갱신을 설정하여 인증서 만료 걱정 없이 안전한 HTTPS 환경을 유지하는 완벽 가이드입니다.


목차

  • 1. 사전 준비 및 요구 사항
  • 2. 서버 환경 확인
  • 3. DNS 및 도메인 설정
  • 4. Certbot 설치
  • 5. SSL 인증서 발급 및 웹서버 적용
  • 6. 워드프레스 HTTPS 전환
  • 7. 자동 갱신 설정 및 검증
  • 8. 고급 설정: HSTS, OCSP, TLS 최적화
  • 9. 보안 강화 및 유지보수 팁
  • 10. 문제 해결 가이드
  • 11. 결론 및 참고 자료

1. 사전 준비 및 요구 사항

  • 운영체제: Ubuntu 20.04/22.04, Debian 10/11, CentOS 8/RHEL 8 이상
  • 권한: sudo 권한을 가진 사용자
  • 웹서버: Apache 또는 Nginx 설치 및 기본 작동 확인
  • 도메인: 구매된 도메인 및 DNS 레코드 제어 권한
  • 네트워크: 80(HTTP)/443(HTTPS) 포트 접근 허용

2. 서버 환경 확인

먼저 서버에 SSH로 접속하여 웹서버 버전 및 동작 상태를 확인합니다.

ssh user@server_ip
# 웹서버 버전 확인 (Nginx 예시)
nginx -v

# Apache 예시
apache2 -v

중요: 방화벽(UFW, firewalld, iptables 등) 설정이 80/443 포트를 허용하도록 구성되었는지 반드시 확인하세요.


3. DNS 및 도메인 설정

DNS A 레코드를 서버 공인 IP로 설정하고, WWW 서브도메인도 동일 IP를 가리키도록 구성합니다.

도메인 관리 콘솔 예시:
example.com    A    203.0.113.10
www.example.com A    203.0.113.10
  • 전파 확인: dig +short example.com 또는 nslookup example.com
  • HTTPS 준비: HTTP로 사이트 접속 시 정상 작동하는지 확인

4. Certbot 설치

4.1. Ubuntu/Debian

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

4.2. CentOS/RHEL

sudo yum install epel-release -y
sudo yum install certbot python3-certbot-nginx -y

위 명령으로 Certbot과 Nginx/A패치 연동 플러그인이 설치됩니다.


5. SSL 인증서 발급 및 웹서버 적용

Let’s Encrypt 인증서를 발급하고 웹서버 설정을 자동으로 업데이트합니다.

5.1. Nginx 예시

sudo certbot --nginx \
  -d example.com \
  -d www.example.com \
  --agree-tos \
  --redirect \
  --no-eff-email \
  -m admin@example.com
  • --agree-tos: 서비스 약관 동의
  • --redirect: HTTP → HTTPS 자동 리디렉션
  • --no-eff-email: EFF 메일링리스트 가입 안함
  • -m: 인증서 갱신 알림 이메일

5.2. Apache 예시

sudo certbot --apache \
  -d example.com \
  -d www.example.com \
  --agree-tos \
  --redirect \
  --no-eff-email \
  -m admin@example.com

6. 워드프레스 HTTPS 전환

  • 1. 워드프레스 일반 설정 → 사이트 주소(URL)를 https://로 변경
  • 2. Mixed Content 해결:
    sudo apt install curl
    curl -L https://github.com/wp-cli/builds/raw/gh-pages/phar/wp-cli.phar -o wp
    chmod +x wp
    sudo mv wp /usr/local/bin/
    cd /var/www/html
    wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid
  • 3. .htaccess 최적화 (Apache):
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    </IfModule>
  • 4. 캐시 플러그인 설정: WP Super Cache, W3 Total Cache 등에서 SSL → HTTPS 캐시 재생성

7. 자동 갱신 설정 및 검증

Certbot은 기본적으로 자동 갱신 크론탭을 설정하지만, 주기적으로 수동 확인을 권장합니다.

sudo certbot renew --dry-run
  • 에러 없으면 실제 갱신 작동 준비 완료
  • 정기 crontab -e 또는 systemd 타이머 확인
    # systemd 타이머 보기
    systemctl list-timers | grep certbot

8. 고급 설정: HSTS, OCSP, TLS 최적화

  • HSTS(HTTP Strict Transport Security):
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  • OCSP Stapling:
    ssl_stapling on;
    ssl_stapling_verify on;
    resolver 8.8.8.8 8.8.4.4 valid=300s;
    resolver_timeout 5s;
  • 최신 TLS 설정:
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers on;

9. 보안 강화 및 유지보수 팁

  1. 정기 키 재생성: Let’s Encrypt 인증서는 90일 유효 → 60일마다 새 키 발급 권장
  2. 로그 모니터링:
    sudo tail -f /var/log/letsencrypt/letsencrypt.log
  3. 서버 패치: sudo apt upgrade / sudo yum update로 웹서버, OS 패치
  4. 방화벽 재검토: 보안 그룹(Security Group) 및 UFW 정책 정기 확인
  5. 백업: 인증서 백업 → sudo cp -r /etc/letsencrypt /var/backups/ssl_backup

10. 문제 해결 가이드

  • DNS 오류: NXDOMAIN 발생 시 DNS 레코드 확인
  • 포트 충돌: 80/443 포트 이미 사용 중 → sudo lsof -i:80,443로 프로세스 확인
  • 인증서 발급 실패: 웹루트(Webroot) 모드로 재시도
    sudo certbot certonly --webroot -w /var/www/html \
      -d example.com -d www.example.com
  • 갱신 오류: account lacks permission → Certbot 버전 확인 및 업그레이드

11. 결론 및 참고 자료

위 과정을 통해 누구나 무료로, 안전하게, 자동으로 갱신되는 SSL 인증서를 워드프레스 사이트에 손쉽게 적용할 수 있습니다. HTTPS로 전환된 사이트는 SEO, 사용자 신뢰도, 보안 측면에서 모두 큰 이점을 제공합니다.

참고 자료:
– Let’s Encrypt 공식: https://letsencrypt.org
– Certbot 문서: https://certbot.eff.org/docs/
– Nginx SSL 모범 사례: https://ssl-config.mozilla.org/

태그: 워드프레스SSL, 무료SSL, LetsEncrypt, Certbot, HTTPS설정, 사이트보안, 자동갱신, NginxSSL, ApacheSSL, 웹호스팅보안

728x90