본문 바로가기
워드프레스

워드프레스 블로그 SSL(HTTPS 보안접속) 발급 및 인증하기 - Let's Encrypt

by 마자동 2021. 1. 18.
반응형

워드프레스 블로그 생성을 하셨다면 

http://'본인 도메인'으로 접속이 되실 겁니다. 

이번 시간에는 https://'본인 도메인'으로 접속되게끔

SSL 인증서 발급 및 설정을 진행해보겠습니다.

 

 

SSL인증서는 본디 구매하여 발급받아 사용해야 합니다. 

보통 도메인 발급 사이트에서 같이 판매를 하고 있는데요. 

연간 사용권으로 몇만원 정도 하는걸로 알고 있습니다. 

 

허나 돈을 주고 구매하야 한다면 사용이 꺼려지는데요.

다행이도 무료로 배포하는 비영리기관이 있습니다.

 

바로 Let's Encrypt라는 단체입니다.

 

 

Let's Encrypt - 무료 SSL/TLS 인증서

 

letsencrypt.org

무료 배포이며 해당 기관의 인증서 사용자는 3달에 한번씩 인증서를 갱신해주면 됩니다. 

 

그럼 Let's Encrypt에서 배포하는 SSL인증서를 워드프레스 블로그에 도입해보도록 하겠습니다.

SSL인증서를 도입하고 나면

블로그는 https:// 로 접속이 가능하며

주소창에서 자물쇠 모양을 확인할 수 있고 보안접속하라는 경고 화면도 그만 볼 수 있습니다.

http >> https 리다이랙션하는 방법까지 진행하여

모든 유저가 내 블로그를 접속 시 보안통신(https 접속)을 하도록 진행하겠습니다.

 

 

SSL 인증을 하는 것은 보안문제도 있지만 

그것보다 SEO에 엄청 유리합니다. 

구글이나 네이버는 HTTPS 보안 통신을 하지 않는 웹페이지는 자체 포털의 검색 시 상단 노출에 높은 점수를 주지 않습니다. 

그러니까 워드프레스나 그누보드 같이 자체 웹서버를 구축하여 온라인서비스를 하시려면 

SSL은 무척 중요합니다.

 

물론, 네이버블로그, 티스토리는 자체 SSL을 적용합니다. 

유저가 따로 설정할 것이 없음.. 

글쓰기에만 집중하고 싶으시다면 네이버블로그, 티스토리도 나쁘진 않습니다. 

 

 

 

Let's Encrypt SSL 적용 절차

1. 라이트세일 관리자 페이지에 접속

 

내 인스턴스 터미널 빠른 연결 아이콘을 선택합니다.

화살표 표시 클릭

 

 

 

2. 아래 명령어 입력

sudo apt-get update

해당 인스턴스의 패키지를 업데이트하는 명령어 입니다. 

 

 

 

3. 다음 명령어 입력

sudo apt-get install software-properties-common

 

소프트웨어 속성 패키지를 설치합니다. 

Certbot은 PPA(Personal Package Archive)를 사용하여 배포를 진행하므로

위 속성 패키지 설치를 선행하여 PPA 작업을 보다 효율적으로 진행할 수 있습니다.

 

 

 

4. 다음 명령어 입력

sudo apt-get install certbot -y

Certbot을 라이트세일 인스턴스에 설치하는 명령어입니다.

무리없이 설치되실 겁니다.

 

 

 

5. 와일드 카드 SSL 인증서 생성 준비

와일드 카드란 블로그에 연결된 도메인(예: example.com)의 하위 서브도메인(blog.example.com)도 모두 SSL을 적용할 수 있는 범용 SSL 입니다. 

 

와일드카드 SSL 예시)

tistory.com에 와일드카드 SSL을 적용함으로써

현재 블로그(wpstudy.tistory.com) 및 기타 다른 유저들의 티스토리 블로그(*.tistory.com) 모두는 와일드카드의 적용에 따라 모두 SSL이 적용됩니다. 

 

다음과 같이 진행하세요.

  • DOMAIN=example.com(본인 도메인 넣으세요)
  • WILDCARD=*.$DOMAIN
  • echo $DOMAIN && echo $WILDCARD

DOMAIN 변수 설정 : 내 도메인으로 변경

WILDCARD 변수 설정: *.$DOMAIN 

echo 명령어로 DOMAIN 과 WILDCARD 변수가 잘 입력되어 있는지 확인합니다. 

위와 같이 나온다면 잘 된 것입니다. 

 

 

 

6. Certbot을 실행합니다.

아래 명령어 실행

sudo certbot -d $DOMAIN -d $WILDCARD --manual --preferred-challenges dns certonly

 

다음의 순서대로 물어봅니다.

  • 이메일을 입력합니다.
  • 약관 동의 여부,  A 입력
  • 입력한 이메일로 최신 소식 받아볼건지? Y 입력
  • IP 기록 여부  Y 입력

 

이후 TXT 레코드를 입력하라고 보여줍니다. 

라이트세일 관리자 페이지를 여시고 DNS 영역에 아래의 TXT레코드를 입력합니다.

 

 

7. AWS 라이트세일 DNS 영역에 TXT 레코드 추가

 

TXT 레코드를 DNS에 등록하기 위해

AWS 라이트세일 관리자 페이지를 열고  네트워킹 > 기존에 등록한 DNS 영역으로 이동

 

 

도메인 연결하면서 등록한 2개의 레코드가 보이실겁니다.

레코드 추가를 클릭하여

TXT레코드를 DNS에 등록합니다. 

 

 

다음과 같이 등록했으면

TXT 레코드가 잘 전파되었는지 확인합니다.

새 창에서  https://mxtoolbox.com/TXTLookup.aspx 으로 이동합니다.

 

 

 

_acme-challenge.도메인 입력하고 검색

 

 

아래와 같이 확인되시면 잘 전파된 것입니다.

 

반응형

8. Let's Encrypt SSL 인증서 생성 완료

 

TXT 레코드까지 DNS 영역에 등록이 완료되고 전파가 잘 되는지 테스트까지 완료 하셨다면 

아래와 같은 생성 완료 문구가 나옵니다. 

 

Let's Encrypt SSL은 3개월 마다 갱신이 필요하며

잔여 1개월이 남으면 위에 적은 이메일로 갱신 메일이 옵니다. 

 

갱신 메일이 오면 해당 인스턴스 터미널에서 "certbot renew" 라고 명령어만 날려주면 자동 갱신이 됩니다. 

명령어를 날리실땐 꼭 root계정으로 날리셔야 합니다. (root 이동 명령어 : sudo su)

현재 갱신기간이 아니라서 다음과 같이 에러가 발생됩니다.

만약 갱신기간에 갱신을 하지 못하고 만료될 경우 위의 내용을 다시 반복해야 하니 갱신기간을 잊지 마세요.

Crontab을 사용하여 자동갱신하는 방법도 있습니다만..

 

 

 

9. 아파치 서버 재부팅

아파치 서버를 중지합니다. 

 

다음 명령어를 입력하세요.

아파서 서버 중지 : sudo /opt/bitnami/ctlscript.sh stop

 

아래와 같이 표시되면 정상적으로 중지된 것입니다.

중지 후에 기존 인증서 파일을 백업 및 아파치 디렉터리로 연결하는 링크를 생성합니다. 

워드프레스의 경우 데이안 리눅스라는 걸 알고 계세요. 우분투의 경우에는 명령어가 조금 다릅니다. 

본인의 리눅스 종류 및 버전 확인하는 법 (명령어 : grep . /etc/*-release)

 

해당 명령어를 입력하세요. 

server.crt , key, csr 백업

sudo mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/server.crt.old

sudo mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/server.key.old

sudo mv /opt/bitnami/apache2/conf/server.csr /opt/bitnami/apache2/conf/server.csr.old

 

server.csr 파일은 없을 수도 있습니다. 없으면 백업안해도 되고 신경도 안 쓰셔도 됩니다. 오늘(9월 3일) 다시 ssl 갱신하다 보니 해당 파일이 없더라구요. 

 

그리고 server.crt, server.key 파일의 디렉토리가 위와 다를수 있습니다. 만약 경로명이 다를 경우 아래 명령어로 정확한 경로를 찾으셔서 백업하세요. 위 명령어에서 디렉토리 경로명만 바꿔주면 되겠죠? 

 

최상위 폴더부터 '해당파일' 찾기 - (명령어 : find / -name 'server.crt')

 

아파치 연결 링크

sudo ln -s /etc/letsencrypt/live/$DOMAIN/privkey.pem /opt/bitnami/apache2/conf/server.key

sudo ln -s /etc/letsencrypt/live/$DOMAIN/fullchain.pem /opt/bitnami/apache2/conf/server.crt

 

아파치 연결 링크까지 마무리 했다면 아파치 서버를 시작해줍니다. 

 

다음과 같이 보여지면 정상적으로 아파치 서버가 시작된겁니다.(버전에 따라 조금 다를 수 있어요)

 

 

 

이제 본인의 홈페이지에 https://도메인 입력하면 아래와 같이 좌측 상단에 자물쇠 모양이 생깁니다.

SSL 인증이 적용된 모습입니다.

 

하지만 보통의 유저들이 https://도메인 이라고 입력하고 사이트에 접속하지는 않습니다. 

그냥 도메인을 입력했을 경우에도 https로 리다이렉션 해줘야 합니다. 

 

워드프레스에는 수많은 플러그인이 있는데 

리다이렉션을 도와주는 플러그인도 있습니다. 

Really Simple SSL 이라는 플러그인인데요. (물론 해당 기능을 제공하는 다른 플러그인도 많습니다.)

 

위 플러그인을 사용하기 위해서는 wp-config.php 파일의 쓰기 권한이 필요합니다.

터미널에 아래와 같이 입력합니다.

 

 

 

sudo chmod 666 /opt/bitnami/wordpress/wp-config.php

sudo chmod 666 /opt/bitnami/apache/conf/vhost/htaccess

 

 

입력 후에 워드프레스 관리자 페이지에서 Really Simple SSL을 다운받습니다.  계속.

더보기

초기 관리자 페이지 ID / PW 

  • user / 터미널에서 cat bitnami_application_password  실행했을 때 나온 값

 

 

10. Really Simple SSL 다운 받아 http >> https 로 리다이랙션하기

 

좌측 메뉴에서 플러그인 > 새로 추가하기를 선택합니다.

 

 

검색창에 "really simple ssl" 이라고 검색하시고, 해당 플러그인을 설치합니다.

설치하고 활성화하기를 클릭해서 활성화 시키면 끝입니다.

 

이제 도메인에 접속해 보십시요.

  • https://도메인
  • https://도메인
  • 도메인
  • www.도메인

어떤 방법으로 접속해도 https://로 리다이렉션합니다. 

이로써 SSL 적용은 끝입니다.

 

수고하셨습니다.

반응형

댓글