ABOUT ME

-

Today
-
Yesterday
-
Total
-

  • 워드프레스(WordPress) 2 웹사이트에 SSL 세팅하기
    Web Development/WordPress 2021. 8. 8. 17:44

    요즘엔 많은 웹 환경이 http 접속보단 https 접속을 권장한다. 이 https를 접속을 위한 SSL 세팅을 해보자.

    카페24 호스팅 서비스 위에 zeroSSL(SSL For Free) 서비스를 사용하여 세팅해 보겠다.

     

     

    thumbnail cryptography

    1. SSL 이란

    SSL에 대한 기본 개념은 아래 내 블로그 링크를 통해 확인할 수 있다.

     

     

    SSL 그리고 대칭과 비대칭 암호화 알고리즘

    http 프로토콜과 https 프로토콜의 가장 큰 차이는 통신 과정에서 암호화 알고리즘을 사용하는 SSL(Secure Socket Layer) 인증 절차가 기능하고 있는지이다. SSL 프로토콜은 이를 통해 서버와 클라이언트

    acknowledge.tistory.com

     

    보통 SSL 세팅을 위해 SSL 인증서를 발급받기 위해서는 어느 정도 비용을 지불해야 한다. 가격은 2만 원부터 30만 원대까지 다양하다. 단지 비트들의 나열인 "쀩빽뿍" 한 데이터를 한두 개 받기 위해 그렇게 까지 지불해야 하는 것이 이상한 것 같지만 아래와 같은 이유가 존재한다.

    • 만약 내 사이트가 해킹을 당했다면 그 해킹의 일부 책임을 보안과 관련 있는 SSL서비스에게 물을 수도 있을 것이다.
    • 이때 SSL 인증 서버 쪽에 책임이 있음이 증명된다면(아마 쉽지 않겠지만) SSL서비스 측은 손해 배상을 해줘야 한다.
    • 손해 배상금 확보를 위해 SSL서비스 측은 보험을 들어놨을 것이다. 

     

    보험비와, 서버 운영비, 인건비의 명목으로 SSL 인증 서비스도 수익을 원하는 것이다.

    대형 웹 서비스 회사는, 돈 몇 푼이 문제가 아니니 당연히 유료 SSL 서비스를 사용할 것이다.

    하지만 개인적인 지식에 비추어 볼 땐, 무료이든 유료이든 사용하는 암호화 알고리즘의 안정성에는 큰 차이가 없을 것으로 본다.

    단지 그것을 운영하는 서버가 얼마나 보안성을 갖추고 있느냐의 차이일 뿐, 아무리 무료 서비스라고 해도 HTTPS 프로토콜의 중추가 되는 SSL서버를 보안 세팅 없이 막무가내로 세상에 던져놨을 리는 없다. 게다가 브라우저를 만드는 회사 측에서는 자신들의 브라우저가(Chorme, Edge 등) 신뢰할 만한 SSL 서버의 서비스만 사용하도록 조치해 두는 것으로 보인다.

     

    2. 무료 SSL 서비스들

    무료 SSL 인증서 발급(https 세팅) 사이트는 크게 두 군데가 보였다.

     

    Let's Encrypt

    • 해외의 ISGR(internet Security Research Grop)에서 세팅해준 SSL 인증서버
    • 3개월간 발급받은 인증서를 사용할 수 있으며 만기 시 재발급받아야 한다.
    • 본인이 쓰고 있는 웹페이지 제작 툴이나 서비스에 Let's Encrypt를 편하게 이용할 수 있게 해주는 부가적인 인터페이스가 존재하지 않는다면,  내 호스트의 서버 쉘(커맨드 라인)로 들어가서 세팅해줘야 할 것들이 있다.
    • 세팅 과정에서, 경우에 따라서는 패키지를 다운로드하여 설치해줘야 한다. ( sudo apt-get install ) 
    • 보통 카페24 같은 호스팅 서비스에서 서버 내에 패키지를 설치하는 방법들은 제한되어있다. (이미 서버 세팅 과정에서 설치되어 있을 확률도 높다)
    • Let's Encrypt는 내 집에서, 내 컴퓨터로, 내 전기세 내가며 서버를 돌릴 때 적절해 보인다.
    • 현금 결제 서비스가 붙어있는 프로젝트나 중요한 데이터를 다루는 프로젝트에서는 이 SSL 서비스를 추천하지 않는다.

     

    참고로 워드프레스(WordPress)에서는 let's Encrypt를 이용해서 SSL 세팅을 해주는 플러그인(추가 서비스)이 존재한다. 플러그 명은 WP Encryption이다 아래의 영상을 참조하면 된다. 어떤 SSL 서비스를 선택할지는 개발자의 마음이다.

     

    WP Encryption - How to Install Free SSL Certificate (Lets Encrypt) for Wordpress Website

    추가로 Let's Encrypt의 기본 웹사이트 링크는 아래와 같다.

     

    Let's Encrypt

     

    letsencrypt.org

     

    ZeroSSL

    • 역시 인증서에 3개월이라는 유효기간이 있으며 만기 시 재발급받아야 한다.
    • 비교적 간편한 방식을 통해 SSL 세팅을 할 수 있다.
    • 얼마나 안정적인 보안 세팅을 해주는지는 잘 모르겠다.
    • 역시 현금결제 서비스가 붙어있는 프로젝트나 중요한 데이터를 다루는 프로젝트에서는 이 SSL 서비스를 추천하지 않는다.
     

    Free SSL Certificates and SSL Tools - ZeroSSL

     

    zerossl.com

     

    3. ZeroSSL (SSL For Free)를 통한 SSL 세팅

    SSL For Free 사이트는 zeroSSL 사이트로 연결시켜주는 광고성 사이트로 보인다. 처음 보이던 게 이 사이트였던지라 난 그냥 여기서부터 시작했다. 이걸 보시는 분들은 처음부터 zeroSSL 사이트에서 시작하는 걸 권한다. 어디서 시작하던 zeroSSL사이트의 SSL 서비스 페이지로 향한다.

     

    참고로 Let's encrypt와 ZeroSSL의 서버 구성내역은 매우 흡사하거나 거의 같을 것으로 예상된다. 단지 후발주자인 zeroSSL이 뭔가 좀... 상대적으로 관대하다..(그렇다고 zeroSSL 광고에 나오더라 ;;) 아래의 화면처럼 링크를 통해 들어가서 내 사이트의 도메인 네임을 한번 기입해보자. ( zeroSSL 사이트도 똑같다 )

     

    a site ssl for free

    무료 계정을 하나 만들라는 페이지가 나온다. 이메일 주소와 사용할 비밀번호를 기입하면 그 자리에서 바로 만들어진다. 이후 나오는 화면에서 New Certificate 버튼

     

    zerossl cert step 1

    Enter Domains 란에 내 도메인 주소를 한번 더 넣고 Next Step

     

    zerossl cert step 2

    다음 화면에선 무료인 "90-Day Certifiate" 항목을 선택 후 Next

     

    zerossl cert step 3

    다음 항목 CSR & Contact는 인증서가 만료됐을 때 이메일로 이사실을 통보받겠냐는 옵션이다.

    받겠다고 체크하고 Next Step

     

    zerossl cert step 4

    프리 플랜 옵션을 선택하자.

     

    zerossl cert step 5

    이후 인증서를 적용할 사이트에 (내 경우 gadeokexp.cafe24.com) 대한 정당한 소유권(ownership)을 가지고 있는지, 식별해야 한다고 말한다. 3번째 항목인 HTTP File Upload 에선 내 카페24의 사이트에 관련 파일을 ftp 업로드 함으로써 이를 증명할 수 있다.

     

    zerossl cert step 6

    이전 설명을 통해 만들어진 카페24의 계정 페이지에서 나의 서비스 관리 -> 서비스 접속 정보를 통해서 FTP 접속 정보를 확인할 수 있다. 난 ftp접속을 위해 filezilla를 사용했고 접속 내용은 아래와 같다.

     

    ftp upload for zerossl ownership cert 1

    이때 유의할 사항

    • 우리 도메인 주소 (내 경우 gadeokexp.cafe24.com/)는 ftp계정 공간에서 "/"폴더가 아닌 /www/에 맵핑된다
    • 따라서 아래 보이는 "gadeokexp.cafe24.com/.well-known/pki-validation/" 도메인 주소와 맵핑되는 ftp폴더는 "/www/.well-known/pki-validation/" 이다.
    • 파일을 업로드한 후에는 아래 화면 3번 옵션에 보이는 링크를 눌러 업로드한 파일 내용이 보이는지 확인하면 된다.

     

    ftp upload for zerossl ownership cert 2

    이후 Next Step -> Verification을 누르면 인증되면서 실제 인증서를 다운로드하고 설치하는 과정이 나온다. 

     

    zerossl cert step 7

    이제 보이는 압축 파일을 받아서 풀면 세 개의 파일이 나온다.

    • ca_bundle.crt 지금 우리가 사용하는 SSL 서버(CA)를 인증하는 상위 인증서
    • certificate.crt SSL 서버(ZeroSSL)가 우리 사이트를 인증해주는 인증서 ( public key 가 포함되어있다 )
    • private.key 내 사이트가 앞으로 사용하게 될 private key ( 절대로 노출되어선 안된다 )

     

    카페24 홈페이지로 들어가서 나의 서비스 관리 -> 인증서 관리(메뉴 하단) -> 외부 인증서 관리로 들어간다.

     

    cafe24 ssl setting for zerossl

    인증서 란과 개인키란에 certficate.crt 파일과 private.key 파일의 내용을 넣어주면 되는데 이때 certficate.crt 파일은 포맷이 달라서 그냥 넣어주면 안 된다고 한다. certficate.crt만 아래와 같이 변환하자

     

    changing file format to base 64 x509

    1. certficate.crt 파일을 왼쪽 더블클릭
    2. 자세히 탭 -> 파일에 복사 -> 다음
    3. 'Base 64로 인코딩 된 X.509(.CER)(S)' 선택 -> 다음
    4. 적당한 파일 경로와 이름 기입 -> 다음

    이후 절차

    • 이렇게 만들어진 인증서 파일을 메모장으로 열어서 그 내용을 "인증서 (SSL CRT)"항목에 붙여 넣는다.
    • 이때 그냥 전체를 ctrl + A 해서 복사해 넣으면 된다.
    • 인증서 확인 버튼을 눌러 인증서가 잘 인식되는지 확인한다.
    • 그리고 pivate.key 파일을 아무 변환 없이 그냥 메모장에 얼여서 Ctrl + A를 해서 복사한다
    • 비밀번호란은 그냥 두면 된다.
    • 신청하기를 누른다.
    • "외부 SSL 인증서 설치 요청이 접수되었습니다.."라는 메시지를 확인한다.

     

    이후 1~3일 정도 기다리면서 내 사이트 주소 앞에 http://대신 https://를 써서 접속해보자. 접속이 되면 완료된 것이다.

    댓글

© 2021. gadeokexp All rights reserved.