ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SSL 보안] 무료 보안인증서 : StartSSL을 그누보드5에 적용시켜보기 (카페24 기준)
    SSL 2018. 10. 19. 10:00

    무료 보안인증서 : StartSSL을 그누보드5에 적용시켜보기 (카페24 기준)




    ▲ SSL 보안이 적용되어있는 네이버



     홈페이지를 하다보면 주소창에 저런 초록 자물쇠가 떠있는 사이트를 종종 보실 수 있을겁니다. (주로 네이버, 구글, Youtube 등에서 볼 수 있음.)


    저 초록 자물쇠가 있는 사이트를 보게된다면 그 사이트는 최소한 '보안에 대한 암호화 대책'을 세워뒀다고 보면 됩니다.


    이를 'SSL : 보안인증서' 라고 합니다.




    ▲ SSL 보안이 적용되어있지 않은 어느 한 사이트



     최근에는 크롬 브라우저에서도 SSL이 적용되지 않은 사이트에 대해선 대놓고 '안전하지 않음'이라고 표시되어 있죠..


    보통 이런 SSL을 설치하기 위해선..





    ▲ Dothome 기준 SSL 보안인증서 설치 비용



     Dothome 기준으로 SSL 보안인증서 설치 비용이 최소 55000원입니다.


    하지만 그냥 가벼운 사이트를 운영하는 사람에게 있어선 저 돈은 부담이 되는 가격..



     그래서 최근에는 Let's Encrypt, StartSSL 등에서 무료로 보안인증서를 배포해줍니다.


    처음엔 제가 Let's Encrpyt를 설치할려 했으나, Let's Encrypt는 443 포트에 대해서만 지원이 되는 듯 합니다.



     일반적인 Http 사이트는 80포트를 할당받고, Https 사이트는 443 포트를 할당 받습니다.


    SSL 같은 경우는 443포트를 쓰지 않더라도 다른 포트를 할당받아 쓸 수 있긴 하나, 그렇게 된다면 홈페이지 주소 뒤에 포트번호를 붙여야 하는 불편함이 생기게 됩니다. 

    (예 : https://csofamily.com:47979, 단순히 https://csofamily.com을 주소창에 치고 접속하면 443포트가 아닌 한 접속불가)


    게다가 443포트를 쓰면 뒤에 포트번호 쓰는것을 생략할 수 있으니 더욱 쓰기 좋겠죠.



     제가 사용하는 웹 호스팅은 저 혼자서 쓰는 단독서버가 아닌 공용으로 쓰는 호스팅서버... (주륵 ㅠ)


    443포트는 한 서버에 하나밖에 없으니.. 공용서버에서는 더더욱 얻질 못하죠 ㅠ (호스팅업체에 443 포트 달라해도 안줄겁니다 -.-)




     Mozilla랑 구글 크롬이 StartSSL을 싫어합니다 ㅠㅠ


    이 두개의 브라우저는 StartSSL을 신뢰를 안한다하니 참고바랍니다.


     참고 1 - 구글, StartSSL 보안인증서를 신뢰 안한다. : https://security.googleblog.com/2016/10/distrusting-wosign-and-startcom.html

     참고 2 - Mozilla, 더이상 Wosign과 StartCom의 인증서를 신뢰하지 않기로 결정: http://blog.alyac.co.kr/820



     맥 OS 환경에서는 StartSSL이 안먹힐 수도 있습니다.


    * 참고 : '재서기'님의 댓글






     [Tip] Let's Encrypt 보안인증서 설치법 (Let's Encrypt도 StartSSL과 같은 다른 하나의 보안인증서 입니다)


    - 블로그

     ㆍOS : Ubuntu 14.04 / Webserver : Apache [클릭]

     ㆍOS : Azure, Ubuntu 14.04, Nginx [클릭]

     ㆍ아파치로 Let's Encrypt 설치해보기 [클릭]

     ㆍNginx로 Let's Encrypt 설치해보기(Written By. wpu.kr) [클릭]

     ㆍNginx로 Let's Encrypt 설치해보기(Written By. 우성군) [클릭]



    - 한빛 미디어 : E-Book (무료) [클릭]

    * 자신이 443 포트를 갖고 있고, Let's Encrypt로 깔고싶다면 위 [Tip] 자료를 참고해주세요.





     StartSSL 


    StartSSL로 보안인증서를 깔아보겠습니다!

    [ Information ]

    1. 도메인 : http://csofamily.com

    2. 사이트 기반 : 그누보드5 (Ver. 5.1.3)

    3. 호스팅 업체 : Cafe24

    4. 호스팅 종류 : 웹호스팅 (단독서버가 아닌 공용서버)


    1. http://startssl.com 사이트로 이동 후, 상단의 'Login'으로 갑니다.



    2. 처음에 계정생성을 해야합니다. Sign-Up 버튼을 누르고, 자신의 국가와 E-mail 주소를 입력합니다.


    그리고 'Send verification code' 버튼을 눌러서 자신이 기입한 메일주소를 통해 인증코드를 받습니다.



    3. 어떤 선택지를 통해 인증서를 받을건지 고릅니다.


    저같은경우는 2번 째 'Generate CSR by yourself. You can download StartComTools to generate the CSR' 를 선택했습니다.

    (웬만하면 저처럼 자기가 CSR 파일을 생성해서 쓰는 쪽으로 하세요.)



     2번째 옵션을 선택하신분은 Cafe24에 로그인 하신 후, 호스팅 센터에서 좌측 메뉴 '인증서 관리 → CSR 생성' 메뉴를 통해 CSR 관련 파일 생성을 해주세요. 

    (지금 받는 CSR, Key 파일 같은 경우에는 있다가 또 쓰이니까 이건 다운받고, 갖고 계셔야 하고, 비밀번호는 반드시 기억하세요.)



     그리고 CSR 파일을 받으시고, 파일을 EditPlus 등을 통해 열람하면 나오는 코드들을 StartSSL CSR 입력란에 복사 및 붙여넣기 해줍니다.



    4. 우선 이리하여 계정생성은 끝났습니다. 

    (저 파일은 굳이 안받아도 될겁니다..)



    5. 위 메뉴 'Login'을 클릭하시고, 이번엔 'One Time Password Login' 로그인을 진행합니다.



    6. 메일인증 후 메일로 통해 코드를 받아내어 로그인 후

    'Validations Wizard' 탭으로 이동 하셔서 'Domain Validation (for SSL certificate)'을 선택 후, 'Continue'를 클릭합니다.



    7. 자신의 도메인을 입력해 준 뒤, 인증받을 메일주소를 선택 후, 메일 인증을 진행합니다.


    * 여기서 StartSSL에서 인증받을 메일주소 추출은 '자신이 처음 도메인 등록당시 등록했던 메일주소'를 따릅니다.

    ▲ Whois로 조회해본 내 도메인 정보 중 이메일 주소



    8. 인증 성공 시 아래와같은 화면이 나옵니다.



     다음으로, Certificates Wizard 메뉴 탭에서 'DV SSL Certificate'를 클릭해서도 이동 가능합니다.



    9. 'Please enter the full hostname for SSL certificate' 아래의 창에 자신의 도메인주소를 입력해줍니다.


     'Validated domain(s): 당신의 도메인주소' 이렇게 이미 입력되어있긴 하지만 입력을 또 해줍니다.


    단, 도메인주소.com(혹은 co,kr 등), www.도메인주소.com(혹은 co.kr 등) 이렇게 최소한 2개를 기본적으로 입력해 줍니다.

    ▲ 자신의 도메인 입력



     그리고 'Please submit your Certificate Signing Request (CSR):' 에서 저는 첫 번째 옵션인 'Generated by Myself (.cer PEM format certificate)'을 선택하고, 아까 과정 3처럼 진행해주시면 됩니다.

    ▲ 과정 3에서 받았던 CSR파일을 복사/붙여넣기 하세요.



    10. 일단 완료는 되었는데, Tool Box > Certificate List 메뉴 탭으로 가시면 'Pending Issued' 라는 상태가 보일겁니다. 이는, 아직 SSL 관련 파일은 받지 못하나, 어느정도 시간이 지나면 'Issued'라는 상태와 함께 파일 다운로드가 활성화가 될겁니다.


    * 만약에 몇 시간, 하루가 지났음에도 불구하고 계속 'Issued' 라고 활성화가 안되면 상단 메뉴에 보이는 'Live Chat'을 통해서 채팅 상담원에게 영어로 요청을 하면 바로 해줍니다.



    11. Status : Issued와 함께 'Retrive'라는 다운로드 활성화 창이 뜨면 'Retrive' 버튼을 클릭해서 압축파일을 다운로드 받아주세요.

    ▲ Retrive 클릭을 통한 압축파일 다운로드

    * 다운로드 시 'Common Name'이 자신의 홈페이지 주소로 된 것으로 다운로드 받으세요.



    12. Cafe24에서, 자신의 호스팅 관리사이트인 호스팅 센터에서 좌측 메뉴 '인증서 관리 → 외부인증서 관리' 메뉴로 가신 후, 


    이전 과정 11번에서 받았던 압축파일 중, ApacheServer → 2_(자신의 도메인).crt 파일만 압축해제 후, root.crt의 내용과 아까 과정 3에서 받아냈던 개인키의 내용을 복사/붙여넣기 합니다.

    ▲ Cafe24에서 인증서 관리 → 외부인증서 관리 메뉴로 가서 인증서, 개인키 내용 작성



    12. 모든 정보를 제대로 입력하셨다면 아래와 같은 상태메세지 창과 함께 신청이 완료되어 있을겁니다.

    ▲ 정보를 제대로 입력했다면 이런 창이 뜰겁니다.


     

    ▲ 자신이 신청했던 인증서 관련 정보 및 상태가 리스트에 있는것도 확인이 됨!

     


    ▲ 그리고 다음날에 확인해보니까 승인과 함께 PORT 번호를 할당해 줍니다!






    14. SSL 인증서가 무사히 적용이 되었다면, 우선 https://자신의도메인:포트번호 (SSL 부여받은 포트번호가 443번일 시 주소 뒤의 ':포트번호'는 안쳐도 될 듯.) 를 입력해서 사이트 접속에 이상없는지 확인합니다. 

    이상이 없으면 다음 과정을 진행합니다.



    15. 그누보드 파일 초반에 위치하는 config.php 파일을 열람합니다.

    조금만 아래, 혹은 바로


    define('G5_DOMAIN', '');

    define('G5_HTTPS_DOMAIN', '');


    이 두개가 보일겁니다.



    이 부분을 아래 내용과같이 수정해줍니다. (입력은 제 홈페이지 기준으로 했습니다.)

     


    16. 홈페이지에 가봅니다.


    그런데 아직까진 변화가 없어보입니다.

    ▲ 보안인증서 적용, config.php 수정.. 그러나 아직까지 변화없어 보이는 사이트

    (초록자물쇠 표시라던지, https 주소 표시가 없음.)



    17. 로그인을 하긴 하나, 일부로 틀리게 해봅니다.

    ▲ https 적용 성공


     위 사진처럼 초록 자물쇠와 https 가 나오면 성공!!






     참고 

    1. StartSSL은 2년 주기로 매번 재신청 해야합니다. (인증서의 유효기간은 2년입니다.)


    2. config.php 수정 후, https://자신의도메인:포트번호 접속 하면 CSS를 불러들이지 않아 사이트가 제대로 보이지 않을겁니다.

    * 단, 포트번호가 443일 경우 정상 작동될겁니다.


    3. 보안인증서 적용 후 사이트는 평소에 'http' 형식으로 운영이 되고, 로그인 등 시에만 한시적으로 'https'가 되었다 다시 'http'로 돌아오는 형식입니다.


    4. config.php를 저처럼 알맞게 수정해도 홈페이지가 깨져서 보이는 등 오류가 발생하는 경우가 생깁니다..


    저같은경우에도 초반에 그런 현상이 발생해서 꽤 고생했는데.. 이상하게 어찌어찌 하다보니 지금은 잘 돌아갑니다...

    (이거에 대해선 저도 원인을 모르겠음..)


    임시방편으로 이를 해결하는 방법으로는, head.sub.php 파일에

    head.sub.php [경로 : /theme/basic/head.sub.php]

    //HTTPS 설정

     if($_SERVER['HTTPS'] != "on") { 

          goto_url("https://".$_SERVER['HTTP_HOST'].":포트번호".$_SERVER['REQUEST_URI']); 

          exit; 

     }


    위 함수를 추가시키면 되겠습니다..

    (이 방법은 임시방편으로, 사이트 전체에 'https'를 적용시키는 겁니다. / 보안인증 오류가 발생할 수 있음.) 


    5. StartSSL 적용 후, 그누보드에서 '관리자 모드'로 들어가면 https 모드가 되다보니 css파일, js파일 등이 제대로 호출되지 않아 사이트가 깨지는 현상, 스마트 에디터가 제대로 작동되지 않는 현상, 메뉴펼침이 안되는 현상을 발견했습니다.


    4번과 같은 경우는 크게 3가지 해결방법이 있습니다.



     첫번 째 방법

    일단 임시적으로 관리자 모드에서 SmartEditor가 연동된 기능의 내용을 사용할 경우 임시적으로 config.php에서 했던 내용수정을 다시 처음으로 돌려서 해보세요..


    ▲ config.php 내용을 다시 처음으로 돌려줍니다.


     이러면 잠시동안 관리자모드를 js, css파일이 잘 불러들인 채로 사용이 가능하나, 홈페이지에 https가 적용이 안될겁니다.

    만일 이렇게 해도 안되면 다음 두번 째 방법을 참고해주세요.


     




     두번 째 방법

    - 관리자 메인 홈 안깨지게 하기(css 파일)


    ▲ 사이트가 깨져서 출력됨. (원인 : css 파일 호출이 안됨.)



     맨 초반 루트폴더에 바로 보이는 head.sub.php 파일에 들어가서

    ▲ head.sub.php 수정 전 (수정해야할 부분 : 64번 째 줄)



    위 그림의 64번 째 코드 echo '<link rel="stylesheet" href="href="'.G5_ADMIN_URL.'/css/admin.css"">'.PHP_EOL;

    ▲ head.sub.php 수정 후 (수정된 부분 : 64번 째 줄)


    위와같이 64번 째 줄을 //자신의도메인:포트번호/adm/css/admin.css를 입력해서 admin.css 파일의 위치 URL로 바꿔줍니다.

    (기본적으로 admin.css 파일은 /adm/css/admin.css에 위치합니다.)


     참고로, 443 포트를 가지신 분은 홈페이지 주소 뒤에 :포트번호 는 적지 않으셔도 될겁니다.



    - 관리자 메뉴 펼쳐지게 하기(js파일)


    ▲ 관리자 모드 메뉴펼침 (js파일과 연동)



     위 과정에 이어서 head.sub.php에서 조금 더 아래로 내려가면

    ▲ head.sub.php 수정 전 (수정해야할 부분 : 89~92번 째 줄)



     위와같은 코드도 있는데 위 그림의 코드를

    ▲ head.sub.php 수정 후 (수정된 부분 : 89~92번 째 줄)



     이렇게 위와같이 고쳐줍니다. (js파일은 기본적으로 루트파일/js 폴더에 위치해 있습니다.)


     참고로, 443 포트를 가지신 분은 홈페이지 주소 뒤에 :포트번호 는 적지 않으셔도 될겁니다.



    - 스마트 에디터 작동 불량 (js파일)



    ▲ 스마트 에디터 불량 (회원메일 발송, 게시판 양식, 내용관리 등에서 나타남.)


     우선 이것은 제 가설입니다.. 이 방법이 먹히기 위해서는 자신의 https 포트가 443 포트여야 할 겁니다..

     FTP로 루트폴더/plugin/editor/smarteditor2 로 이동하신 뒤, editor.lib.php 파일을 다운받아서 다음 아래 그림과 같이 수정합니다.

    ▲ editor.lib.php 수정 전 (수정해야할 부분 : 17~19번 째 줄)


    ▲ editor.lib.php 수정 후 (수정된 부분 : 17~19번 째 줄)


     필자는 443포트가 아니라서 제대로 확신을 못하지만, 443포트이신분은 잘 적용 될겁니다.

    (홈페이지 주소 뒤에 :포트번호 붙이지 않으셔도 됩니다!)


     [주의] 만일 443포트가 아니신 분이 스마트 에디터 불량에 대해 이 방법을 쓰시면 https 주소로 들어가지는 관리자 메뉴 관련해서는 잘 적용이 되겠지만(메일 발송, 게시판 편집 등), 일반적인 http 주소로 들어가지는 곳에서는(게시판 등)스마트 에디터가 적용이 안됩니다!!

     

    ▲ 443포트가 아닌 상태에서 editor.lib.php 수정 시 발생되는 문제

    (좌 : https로 접근되는 관리자메뉴에서는 스마트 에디터가 잘 적용 / 우 : 그와 동시에 http로 접근되는 일반 게시판에서는 스마트 에디터 문제 발생)

    ※ 이미지 클릭 시 커집니다.

     

     443 포트가 아니신 분은 '첫번 째 방법'을 통해 이를 임시적으로 해결하세요.



     세번 째 방법

      - 구글크롬 : 주소입력창 우측에 보이는 아이콘을 누르고, '안전하지 않은 스크립트 로드'를 클릭


     - 익스플로어 :

    ▲ 익스플로어 : 보안콘텐츠 오류메세지



    하단의 '모든 콘텐츠 표시'를 클릭해주면 됩니다.



     참고로 5번 문제의 해결방법은 임시방편으로, 두 개 방법 다 인증서 오류 메세지가 나옵니다.

    (특별히 이상없으면 무시하고 사용하시면 됩니다.)



    지금까지 저와 SSL 보안인증서를 적용해봤습니다.


    저도 SSL을 처음 설치하면서 이런저런 힘든 경험을 하다보니 '다른 분들도 이런 어려움을 덜어드려야 겠다.' 라는 마음으로 이렇게 글을 작성해봤습니다.. 많은 분들이 이 글을 참고하셔서 보안적용을 통해 비용에 대한 부담을 최소화 하고, 홈페이지 보안률을 높였으면 하는 바램입니다 :)



    이만 설명글 마치겠습니다!


    부족한 설명글 봐주셔서 감사합니다.




     17.4.21 내용 수정 


     Cafe24에서의 인증서 신청방법및 StartSSL 사이트의 몇 가지 사이트 디자인 변경으로 글을 조금 수정했습니다.


    맞지 않는 정보가 있을 경우 댓글로 피드백 부탁드립니다.



    - Written By. kbs4674

    - Blog : http://blog.naver.com/kbs4674

    - Site : http://csofamily.com


    [출처] [SSL 보안] 무료 보안인증서 : StartSSL을 그누보드5에 적용시켜보기 (카페24 기준)|작성자 도라도라


Designed by Tistory.