워드프레스 무료 SSL 적용 및 자동 갱신 설정 방법
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. 보안 강화 및 유지보수 팁
- 정기 키 재생성: Let’s Encrypt 인증서는 90일 유효 → 60일마다 새 키 발급 권장
- 로그 모니터링:
sudo tail -f /var/log/letsencrypt/letsencrypt.log
- 서버 패치:
sudo apt upgrade
/sudo yum update
로 웹서버, OS 패치 - 방화벽 재검토: 보안 그룹(Security Group) 및 UFW 정책 정기 확인
- 백업: 인증서 백업 →
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, 웹호스팅보안