Namecheap 도메인을 Vultr(워드프레스 서버)로 연결하고 SSL 적용하는 완전 가이드

도메인은 Namecheap, 서버는 Vultr VPS를 사용해 워드프레스를 운영하려는 경우, 가장 깔끔하고 안정적인 연결 방법은 Namecheap DNS를 유지하며 A/CNAME 레코드를 Vultr 서버 IP로 지정하고, 서버에서 무료 SSL(HTTPS)을 발급받아 적용하는 것입니다. 이 가이드를 따라하면 15~30분 내에 모든 설정을 완료할 수 있습니다. 한 번 같이 가볼까요?


DNS 연결 (Namecheap → Vultr 서버 IP)

가장 먼저 도메인이 Vultr 서버를 가리키도록 설정해야 합니다.

  • 사전 준비: Vultr 대시보드에서 워드프레스 인스턴스의 공인 IP 주소를 확인합니다.
  • Namecheap 설정:
    1. Namecheap에 로그인 후 Domain List → 해당 도메인 ManageAdvanced DNS로 이동합니다.
    2. A RecordCNAME Record를 추가 또는 수정합니다.
      • A Record: Host = @ (도메인 자체), Value = Vultr 공인 IP
      • CNAME Record: Host = www, Value = @
    3. TTL(Time to Live)Automatic으로 설정하는 것이 좋습니다.
  • 전파 대기 및 확인: 설정을 저장한 후 DNS 정보가 전 세계에 퍼지는 데 수분에서 최대 1시간 정도 소요될 수 있습니다. nslookup이나 ping 명령어로 도메인이 Vultr IP를 가리키는지 확인하세요.

Vultr 서버 방화벽 설정

SSL 인증서 발급과 HTTPS 접속을 위해 필요한 포트를 열어야 합니다.

  • 포트 개방: Vultr 인스턴스 보안 그룹 또는 서버 방화벽(UFW 등)에서 80 (HTTP) 포트와 443 (HTTPS) 포트를 열어줍니다.
  • UFW 사용 시:
    sudo ufw allow 80,443/tcp
    sudo ufw status
    

    위 명령어를 입력해 포트 개방 상태를 확인하세요.

왜 80번과 443번 포트를 열어야 하나요?

  • 포트 80 (HTTP):

    • Let’s Encrypt가 SSL 인증서를 발급할 때, 도메인 소유권을 검증하기 위해 HTTP 프로토콜로 서버에 접근합니다.

    • 이 과정에서 80번 포트가 막혀 있으면 인증서 발급이 실패합니다.

    • 또한 HTTP 접속이 가능해야 HTTPS로 자동 리다이렉션할 수 있습니다.

  • 포트 443 (HTTPS):

    • 실제로 HTTPS 트래픽이 이 포트를 통해 서버로 들어오고 나갑니다.

    • 인증서가 발급된 후 사용자가 안전하게 사이트에 접속하려면 443 포트가 반드시 열려 있어야 합니다.


무료 SSL(Let’s Encrypt) 발급

도메인이 서버 IP로 정상 연결되었다면, Certbot을 이용해 SSL 인증서를 발급받을 수 있습니다.

  • Certbot 설치:
    sudo snap install --classic certbot
    sudo ln -s /snap/bin/certbot /usr/bin/certbot
    
  • 웹서버별 인증서 발급 명령:
    • Nginx: sudo certbot --nginx -d example.com -d www.example.com
    • Apache: sudo certbot --apache -d example.com -d www.example.com
  • 주의사항: Certbot은 자동으로 인증서를 발급하고, HTTP 접속을 HTTPS로 리디렉션하는 설정을 추가해 줍니다. 인증서 발급이 실패한다면, 대부분 DNS 전파가 완료되지 않았거나 80 포트가 차단된 경우입니다.

워드프레스 주소 HTTPS로 변경

SSL 인증서가 서버에 정상적으로 설치되었다면, 워드프레스 내부 설정도 HTTPS로 바꿔줘야 합니다.

  • 워드프레스 관리자 페이지:
    1. 관리자 페이지에 로그인합니다.
    2. 설정일반 메뉴로 이동합니다.
    3. 워드프레스 주소 (URL)사이트 주소 (URL)를 모두 https://도메인으로 변경하고 저장합니다.
    4. 저장 후 자동 로그아웃되면 다시 로그인하세요.
  • 혼합 콘텐츠(Mixed Content) 해결:
    • 워드프레스 주소를 변경했음에도 스타일이 깨진다면, Really Simple SSL 플러그인을 설치하고 활성화해 보세요.
    • 캐시 플러그인(WP Rocket, LiteSpeed Cache 등)을 사용 중이라면 캐시를 전체 비우기 해야 합니다.

자주 막히는 6가지 포인트와 해결책

  • 인증서 발급 실패:
    • 원인: DNS 전파 미완료, 80 포트 차단, Cloudflare와 같은 프록시 서비스로 인한 챌린지 실패.
    • 해결: DNS 전파를 다시 확인하고, Cloudflare를 사용 중이라면 DNS Only(회색 구름) 모드로 잠시 변경 후 인증서를 발급받으세요.
  • www만 되거나 루트 도메인만 됨:
    • 원인: DNS 레코드 중 하나가 빠졌거나 다른 IP를 가리키는 경우.
    • 해결: Advanced DNS 설정에서 A 레코드와 CNAME 레코드가 모두 올바른지 다시 점검하고, Certbot 명령에 두 도메인이 모두 포함되었는지 확인하세요.
  • https 접속 시 스타일이 깨짐:
    • 원인: 혼합 콘텐츠(Mixed Content) 오류. 기존의 HTTP 링크가 남아있을 때 발생.
    • 해결: Really Simple SSL 플러그인을 활성화하고, 캐시 플러그인의 캐시를 전부 비우면 해결됩니다.
  • 갱신 실패 메일이 옴:
    • 원인: Certbot 자동 갱신 크론 작업이 중지되었거나, 80 포트를 강제로 HTTPS로 리디렉션해 갱신 챌린지가 막힌 경우.
    • 해결: sudo certbot renew --dry-run 명령어로 갱신 상태를 즉시 점검하고, 설정 파일을 수정하세요.

Disclaimer: 본 블로그의 정보는 개인의 단순 참고 및 기록용으로 작성된 것이며, 개인적인 조사와 생각을 담은 내용이기에 오류가 있거나 편향된 내용이 있을 수 있습니다.