wordpress cloudflare oci integration

WordPress 도메인 연결 가이드: OCI 호스팅 환경에서 HTTPS 설정하기 (2025)

안녕하세요! 오늘은 Oracle Cloud Infrastructure(OCI)에서 운영 중인 WordPress 사이트에 도메인을 연결하는 방법을 자세히 알아보겠습니다.

도메인이란 무엇일까요?

도메인은 인터넷 상의 여러분 사이트 주소입니다. 예를 들어 ‘datainhands.com’과 같은 형태죠. 복잡한 IP 주소(예: 123.456.789.012) 대신 기억하기 쉽고 전문적인 웹 주소를 사용할 수 있게 해줍니다.

🤔 OCI WordPress 사이트에 도메인이 특별히 더 필요한 이유

OCI 컴퓨트 인스턴스에서 WordPress를 운영할 때는 도메인 연결이 더욱 중요합니다. 그 이유는:

  1. 보안 인증서(SSL) 설정의 용이성
    • IP 주소만으로는 보안 인증서 발급이 제한적
    • 도메인이 있으면 Let’s Encrypt 무료 인증서 사용 가능
  2. 데이터베이스 백업과 복원의 안정성
    • IP 주소가 변경되어도 사이트 설정 유지 가능
    • 백업 및 마이그레이션 작업이 훨씬 수월
  3. 클라우드 환경의 유연성 활용
    • 인스턴스 재생성이나 확장 시에도 동일 주소 유지
    • 로드 밸런서 적용이나 지역 확장이 용이

도메인 연결 전 준비사항

시작하기 전에 다음 항목들을 확인해주세요:

  1. 도메인 구매와 접근 권한 구매한 도메인과 도메인 관리 페이지 접근 권한이 필요합니다. 가비아, 고대디 등 신뢰할 수 있는 업체에서 구매하시면 됩니다.
  2. 서버 정보 확인 OCI 컴퓨트 인스턴스의 공인 IP 주소를 메모해두세요. 콘솔에서 쉽게 확인할 수 있습니다.
  3. WordPress 관리자 접근 WordPress 관리자 페이지에 접속할 수 있는 계정 정보가 필요합니다.

DNS 설정하기: 도메인과 서버 연결의 시작

NAME.COM - Manage DNS Records
NAME.COM - Manage DNS Records

DNS 설정은 도메인 연결의 첫 단계입니다. 도메인 구매처의 관리 페이지에서 다음과 같이 설정합니다:

1. A 레코드 설정 A 레코드는 도메인을 서버의 IP 주소와 직접 연결합니다

NAME.COM - Add A record
NAME.COM - Add A record
[A 레코드]
Host: @ (또는 비워두기)
Answer: [여러분의 OCI 인스턴스 IP]
TTL: 3600

2. www 설정 www가 붙은 주소도 동작하도록 CNAME 레코드를 추가합니다

[CNAME 레코드]
Host: www
Answer: datainhands.com
TTL: 3600
NAME.COM - Add CNAME
NAME.COM - Add CNAME

WordPress 설정 업데이트

이제 WordPress에 새로운 도메인을 알려줄 차례입니다. 이 과정은 신중하게 진행해야 하는데, 실수하면 사이트 접속이 불가능할 수 있기 때문입니다.

WordPress 관리자 페이지의 ‘설정 > 일반’ 메뉴에서:

Wordpress - General Settings
WordPress - General Settings
  1. WordPress 주소(URL) 변경
  2. 사이트 주소(URL) 변경

두 주소 모두 새로운 도메인으로 업데이트하면 됩니다.

wordpress - change wordpress/site URL
wordpress - change wordpress/site URL
  1. 변경사항 저장

    • 설정 저장 후 새로운 도메인으로 리다이렉트될 때까지 대기

Apache 웹서버에서 도메인 설정하기

OCI의 WordPress는 Apache 웹서버 위에서 동작합니다. 새로운 도메인이 제대로 작동하려면 Apache에도 관련 설정을 해줘야 합니다. 이 과정은 조금 기술적이지만, 천천히 따라오시면 어렵지 않습니다.

먼저 터미널에 접속해서 가상 호스트 설정을 시작합니다. 가상 호스트란 하나의 서버에서 여러 웹사이트를 운영할 수 있게 해주는 Apache의 기능입니다.

sudo mkdir -p /etc/httpd/sites-available
sudo mkdir -p /etc/httpd/sites-enabled

이 명령어들은 Apache 설정을 깔끔하게 관리하기 위한 디렉토리를 만듭니다. sites-available에는 모든 설정 파일을 저장하고, sites-enabled에는 실제로 사용할 설정만 연결합니다.

이제 도메인을 위한 설정 파일을 만들어봅시다:

sudo nano /etc/httpd/sites-available/yourdomain.com.conf

설정 파일 안에는 다음 내용을 입력합니다:

<VirtualHost *:80>
       ServerName yourdomain.com
       ServerAlias www.yourdomain.com (ex. www.datainhands.com)
       DocumentRoot /var/www/html

       <Directory /var/www/html>
           Options Indexes FollowSymLinks MultiViews
           AllowOverride All
           Require all granted
       </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
   </VirtualHost>

이 설정은 웹서버에게 몇 가지 중요한 정보를 알려줍니다:

  • yourdomain.com으로 들어오는 모든 요청을 처리하겠다
  • www.yourdomain.com도 같은 방식으로 처리하겠다
  • 웹사이트 파일은 /var/www/html 디렉토리에 있다
  • .htaccess 파일을 통한 설정 변경을 허용하겠다

이제 설정을 활성화하고 http 서버 서비스를 재시작 합니다.

# 심볼릭 링크 생성
sudo ln -s /etc/httpd/sites-available/yourdomain.com.conf /etc/httpd/sites-enabled/ (ex. datainhands.com.conf)
   
# httpd.conf에 설정 디렉토리 포함
echo "IncludeOptional sites-enabled/*.conf" | sudo tee -a /etc/httpd/conf/httpd.conf
   
# 서버 재시작
sudo systemctl restart httpd

SSL 인증서로 안전한 HTTPS 설정하기

이제 사이트를 HTTPS로 안전하게 만들어볼 차례입니다. SSL 인증서는 웹사이트와 방문자 사이의 통신을 암호화하여 보안을 강화합니다. Oracle Linux 8 환경에서는 다음과 같은 단계로 진행합니다.

먼저 필요한 도구를 설치합니다:

1. 기본 패키지 설치

먼저 EPEL 저장소와 certbot을 설치합니다:

# EPEL 저장소 추가
sudo dnf -y install oracle-epel-release-el8

# certbot 및 Apache 플러그인 설치

sudo dnf -y install certbot python3-certbot-apache

2. SSL 기본 환경 구성

보안 인증서를 위한 기본 디렉토리와 임시 인증서를 설정합니다:

# SSL 인증서 디렉토리 생성
sudo mkdir -p /etc/pki/tls/certs

# 임시 자체 서명 인증서 생성

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/pki/tls/private/localhost.key \
-out /etc/pki/tls/certs/localhost.crt

# 웹서버 재시작

sudo systemctl restart httpd

이 임시 인증서는 Let’s Encrypt 인증서를 발급받기 전까지만 사용됩니다. 자체 서명 인증서 생성 시 나오는 질문들은 모두 기본값으로 넘기셔도 됩니다.

3. Let's Encrypt 인증서 발급받기

이제 무료지만 신뢰할 수 있는 Let’s Encrypt 인증서를 발급받습니다:

# 인증서 발급 (Apache 자동 설정)
sudo
certbot --apache -d yourdomain.com -d www.yourdomain.com

이 명령어를 실행하면 Certbot이 자동으로:

  1. 도메인 소유권을 확인하고
  2. SSL 인증서를 발급받고
  3. Apache 설정을 업데이트하고
  4. HTTPS 리다이렉션을 설정합니다

4. 자동 갱신 설정하기

인증서는 90일마다 갱신해야 하는데, 다행히 자동으로 갱신되도록 설정할 수 있습니다:

# 갱신 테스트 실행
sudo certbot renew –dry-run

# 자동 갱신 서비스 상태 확인

sudo systemctl status certbot-renew.timer

 

Let’s Encrypt Certificate - Setting Up Automatic Renewal
Let’s Encrypt Certificate - Setting Up Automatic Renewal

만약 갱신 서비스 상태를 확인 했을 때, 위와 같이 Active 상태가 “inactive”로 표시될 경우 자동 갱신 기능이 활성화 되어 있지 않은 것 입니다.

Check Certificate Expiry Date

또, sudo certbot certificates 명령어로 인증성의 상태를 점검 했을 때, 위 이미지에서와 같이 VALID: 44 days로 확인 되면 그동안 인증서가 갱신되지 않았다는 의미 입니다. Let’s Encrypt 인증서는 90일 동안 유효합니다. 따라서 아래와 같은 방법으로 자동 갱신을 활성화 하도록 합니다:

자동 갱신 활성화 방법:
certbot-renew.timer 를 활성화하면 자동으로 인증서가 갱신됩니다.

sudo systemctl enable certbot-renew.timer
sudo systemctl start certbot-renew.timer

이후 상태를 확인하여 Active: active (waiting)으로 표시되는지 확인하세요

sudo systemctl status certbot-renew.timer
Activate Certbot Renew Timer
Activate Certbot Renew Timer

이미지를 보시면, 8초 전에 명령어를 수행했고 이 결과 현재 certbot-renew.timer활성화(active) 상태이며, 다음 실행 시간이 2025-02-09 19:36:02 GMT로 설정되어 있다는 것을 확인 할 수 있습니다.

기본적으로 Certbot은 12시간마다 실행되도록 설정되어 있습니다. 즉, 하루에 두 번 실행되며, 인증서 갱신이 필요한 경우 자동으로 갱신을 수행합니다.

Let’s Encrypt 인증서는 90일 동안 유효하며, Certbot은 이를 30일 이하로 남았을 때 자동으로 갱신하려고 시도합니다. 단, certbot renew 명령어는 매번 실행되지만, 인증서의 유효기간이 충분히 남아 있으면 실제로는 갱신되지 않습니다.

자동 갱신 활성화 방법 2:
위에서 제시한 해결 방법 이외에 crontab을 사용해서 자동 갱신을 설정하는 방법도 있습니다.

다음 명령어를 수행해서 cron 작업을 추가세요.

sudo crontab -e

그리고 편집창에서 아래와 같은 줄을 추가합니다.

0 2 * * * certbot renew –quiet && systemctl reload httpd

이렇게 하면 매일 새벽 2시에 Certbot이 인증서를 갱신하고, 갱신된 인증서를 적용하기 위해 Apache 웹 서버를 재시작하게 됩니다.

5. 보안 설정 마무리하기

SELinux와 방화벽 설정도 업데이트해야 합니다:

# SSL 접근 권한 부여
sudo setsebool -P httpd_can_network_connect 1

# HTTPS 포트 허용

sudo firewall-cmd –permanent –add-service=https
sudo firewall-cmd –reload

이제 브라우저에서 여러분의 사이트에 접속하면 주소창에 자물쇠 아이콘이 표시될 것입니다. 이는 사이트가 안전하게 암호화되어 있다는 신호입니다.

구글은 HTTPS를 사용하는 사이트를 검색 결과에서 더 높이 평가한다는 점도 기억해두세요. 따라서 SSL 인증서 설정은 보안뿐만 아니라 SEO에도 도움이 됩니다.

마지막 점검사항

이제 거의 다 왔습니다! 하지만 완벽한 설정을 위해 몇 가지 더 확인해볼까요?

1. DNS 전파 확인하기
도메인 설정이 전 세계에 전파되려면 시간이 좀 걸립니다. 다음 명령어로 확인해보세요:

ping yourdomain.com

2. SSL 인증서 확인하기
브라우저에서 사이트에 접속했을 때 자물쇠 아이콘이 보이면 성공입니다.

3. WordPress 주소 확인하기
관리자 대시보드에서 모든 URL이 새 도메인으로 잘 바뀌었는지 확인합니다.

이렇게 해서 WordPress 사이트에 도메인을 연결하는 모든 과정이 끝났습니다. 이제 여러분의 사이트는 전문적인 도메인으로 안전하게 서비스 될 준비가 되었습니다.

문제 해결 가이드

도메인 연결 과정에서 문제가 발생할 수 있습니다. 여기서는 자주 발생하는 문제들과 해결 방법을 자세히 살펴보겠습니다.

대부분의 문제는 DNS 전파 시간이 더 필요하거나, 설정 파일에 작은 오타가 있는 경우입니다. Apache 에러 로그를 확인하면 많은 도움이 됩니다:

사이트 접속이 되지 않는 경우

사이트에 접속이 되지 않는다면, 먼저 DNS 설정이 제대로 전파되었는지 확인해야 합니다. DNS 전파는 전 세계 DNS 서버에 여러분의 도메인 정보가 퍼져나가는 과정인데, 보통 몇 시간에서 최대 48시간까지 걸릴 수 있습니다.

다음 명령어로 DNS 설정을 확인해보세요:

ping yourdomain.com
nslookup yourdomain.com

결과값이 여러분의 OCI 인스턴스 IP 주소와 다르다면, 아직 DNS 전파가 완료되지 않은 것입니다. 하지만 12시간 이상 지났는데도 변화가 없다면, 도메인 관리 페이지에서 DNS 설정을 다시 한 번 확인해보시기 바랍니다.

SSL 인증서 관련 문제

SSL 인증서와 관련된 문제는 대부분 인증서 발급 과정이나 Apache 설정에서 발생합니다. 다음 단계로 문제를 확인해보세요:

# Apache 설정 문법 검사
sudo apache2ctl configtest

# SSL 인증서 상태 확인

sudo certbot certificates

# Apache 오류 로그 확인

sudo tail -f /var/log/httpd/error.log

특히 error.log를 확인하면 문제의 정확한 원인을 파악할 수 있습니다. 로그에서 ‘SSL’ 또는 ‘certificate’ 관련 오류 메시지를 찾아보세요.

WordPress 관리자 페이지 접속 문제

도메인 변경 후 관리자 페이지에 접속할 수 없는 경우가 있습니다. 이는 WordPress 데이터베이스의 URL 설정 때문인데, 다음과 같이 해결할 수 있습니다:

wp-config.php 파일에 다음 두 줄을 추가합니다:

define(‘WP_HOME’,‘https://yourdomain.com’);
define(‘WP_SITEURL’,‘https://yourdomain.com’);

이 설정은 WordPress의 사이트 URL을 강제로 지정하는 것입니다. 관리자 페이지에 다시 접속할 수 있게 되면, ‘설정 > 일반’ 메뉴에서 URL을 올바르게 수정하고 위의 코드는 제거하시면 됩니다.

유지보수 체크리스트

도메인 연결이 완료된 후에도 정기적으로 확인해야 할 사항들이 있습니다. 이러한 점검은 사이트의 안정적인 운영을 위해 필수적입니다.

매월 확인할 사항

보안 인증서는 90일마다 자동으로 갱신되도록 설정했지만, 제대로 작동하는지 확인이 필요합니다. 매월 한 번씩 다음 사항들을 점검하세요:

# SSL 인증서 상태 확인
sudo certbot certificates

# 자동 갱신 서비스 상태 확인

sudo systemctl status certbot-renew.timer

분기별 확인 사항

3개월마다 한 번씩은 좀 더 깊이 있는 점검이 필요합니다:

  1. 도메인 만료일 확인
  2. DNS 설정 이상 여부 점검
  3. Apache 설정 파일 백업
  4. 보안 업데이트 설치

 

이러한 정기적인 점검은 문제가 발생하기 전에 미리 발견하고 조치할 수 있게 해줍니다.

이것으로 WordPress 사이트의 도메인 연결과 관리에 대한 모든 내용을 마치겠습니다. 추가 질문이나 어려움이 있으시다면 댓글로 남겨주세요.

Similar Posts

답글 남기기

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