AWS 라이트세일 워드프레스 홈페이지 SSL(HTTPS) 인증서 적용 방법

이번 포스팅에서는 AWS 라이트세일 워드프레스 홈페이지에 SSL 인증서(HTTPS)를 적용하는 방법에 대해 다루어 보겠습니다.

SSL(HTTPS) 필수 이유

HTTPS은 웹브라우저와 웹서버가 통신할 때 주고 받는 데이터를 암호화해주는 프로토콜입니다. HTTPS는 특히나 회원가입이나 결재가 필요한 사이트에서는 필수적으로 설정해 주어야합니다.

뿐만아니라 HTTPS를 적용해야 검색엔진에게 높은 점수를 받기 때문에 일반 사이트도 꼭 HTTPS 설정이 필수적입니다.

SSL 적용 방법

라이트세일 인스턴스 접속

AWS 라이트세일에서는 Bitnami 툴을 활용해서 간단하게 HTTPS 설정이 가능합니다.

AWS 콘솔에서 인스턴스를 선택한 다음 SSH 클라이언트에 접속하겠습니다.

Bitnami HTTPS 도구 사용

Bitnami는 Let’s Encrypt SSL 인증서를 쉽게 설치할 수 있도록 bncert-tool 이라는 도구를 제공합니다.

Let’s Encrypt는 비영리 단체인 Internet Security Research Group(ISRG)에서 제공하는 무료 SSL/TLS 인증서 발급 서비스입니다. 웹사이트에 HTTPS 보안을 쉽게 적용할 수 있도록 자동화된 도구와 무료 인증서를 제공합니다.

bncert-tool 설치 확인

일반적으로 AWS 라이트세일에서 워드프레스를 만들었다면 bncert-tool이 기본적으로 설치되어 있습니다. SSH에서 아래 명령어를 입력해 줍니다.

sudo /opt/bitnami/bncert-tool

만약 위 명령어가 재대로 실행되지 않는 경우, 도구를 직접 다운로드하고 설치합니다.

wget https://downloads.bitnami.com/files/stacksmith/bitnami-cert-tool-0.1.3-linux-x64-installer.run
chmod +x bitnami-cert-tool-0.1.3-linux-x64-installer.run
sudo ./bitnami-cert-tool-0.1.3-linux-x64-installer.run

위에 부터 1줄 1줄 입력을 해주겠습니다.

설치가 완료되었다며 아래 명령어를 다시 입력해 주겠습니다.

sudo /opt/bitnami/bncert-tool

bncert-tool 실행

실행이되었다면 도메인을 입력해야합니다. 자신의 도메인을 도메인.com, www.도메인.com과 같은 방식으로 입력을 해주겠습니다.

도메인 입력이 끝났다면 아래 화면으로 넘어가게 됩니다.

첫 번째 질문은 웹서버 HTTP와 HTTPS 리디렉션입니다. 모든 HTTP 트래픽을 HTTPS로 리디렉션할지를 묻습니다. HTTP로 접속되면 안되므로 Y를 입력해 주겠습니다.

두 번째 질문은 www 없이 도메인에 접속했을 때 www가 붙는 사이트로 리디렉션 할지를 묻습니다. www가 없는 도메인을 쓰고 싶기 때문에 N을 입력해 주겠습니다.

마지막 질문은 반대의 경우로 www 붙여서 도메인에 접근 했을 때 www가 없는 도메인으로 리디렉션할지를 묻습니다. Y를 입력해 주겠습니다.

다음으로는 Let’s Encrypt의 알림과 동의서, 약관등을 받을 이메일을 요청하는 내용입니다.

이메일을 주소를 입력하고 동의를 위해 Y를 입력해 주겠습니다.

설정이 완료되면 아파치 웹서버가 자동으로 재시작되면서 SSL이 설정됩니다.

자신의 웹사이트에 접속하면 도메인 주소 옆에 버튼을 통해 SSL이 적용된 모습을 확인할 수 있습니다.

bncert-tool 단점

bncert-tool는 간편하게 라이트세일 홈페이지에 SSL를 적용할 수 있지만, 와일드카드 옵션은 없습니다. 와일드카드 SSL 인증서 등록은 Certbot과 DNS 플러그인을 설치해서 진행할 수 있습니다. 하지만 SSL 등록할 홈페이지가 많지 않다면 도메인 입력 시 여러 개를 입력해서 bncert-tool 로도 충분히 커버가 가능합니다.

SSL 와일드카드 인증서는 하나의 인증서로 동일 도메인의 여러 서브도메인을 보호 할 수 있는 SSL 인증서입니다. 일반적인 SSL 인증서는 특정 도메인만 보호하는 반면, 와일드카드 인증서는 기본 도메인과 해당 도메인의 모든 서브도메인까지 보호할 수 있는 점이 특징입니다.

SSL 인증서 갱신

Let’s Encrypt 인증서는 90일 동안만 유효하기 때문에, 인증서 갱신을 위해 cron 작업을 설정해야 합니다. 

자동갱신

스케쥴 설정

자동 갱신을 위해 cron 작업을 설정해줍니다.

Crontab 파일을 열어 줍니다.

sudo crontab -e

아래 명령어를 추가하여 인증서를 자동 갱신하고 Apache를 재시작하도록 설정합니다.

0 0 * * * /opt/bitnami/letsencrypt/lego --path="/opt/bitnami/letsencrypt" --email="이메일@example.com" --domains="example.com" --domains="www.example.com" renew && /opt/bitnami/ctlscript.sh restart apache

위 설정은 매일 자정에 인증서가 갱신되었는지 확인하고, 갱신된 경우 웹 서버(Apache)를 재시작하여 새 인증서를 적용합니다.

수동갱신

인증서가 자동으로 갱신되지 않는 경우 아래 명령어를 입력해서 수동 갱신을 할 수 있습니다.

sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/letsencrypt/lego --tls --email="your-email@example.com" --domains="yourdomain.com" --domains="www.yourdomain.com" --path="/opt/bitnami/letsencrypt" renew
sudo /opt/bitnami/ctlscript.sh start
본 포스팅은 파트너스 활동의 일환으로, 이에 따른 소정의 수수료를 제공 받을 수 있습니다.