본문 바로가기

https 무료 ssl 적용 - cafe24

http를 https로 바꾸기 위해 ssl을 활용하는 방법은 여러가지가 있다.


첫째로 유료 인증서를 구입을 하는 것이다.세세하게 설정하는 부분은 각 사이트마다 다 있다. 안되면 문의를 해보면 된다.


두번째로 무료로 적용을 하는 부분인데 이 부분도 몇가지가 있다


두번째의 첫번째 경우로 서버를 가지고 있거나 다룰 줄 안다면 여러 환경 조건이 된다면 Let's Encrypt를 설치 후에 발행을 하면 된다.


그 다음 방법으로는 온라인에서 무료로 발급해주는 곳에서 발급을 한 뒤에 연결을 하면 된다.


많이 찾아보고 확인해보고 진행해보고 막혀보기도 했다.


발급된 let's encrypt 인증서의 유효기간은 3개월이다. 즉 3개월마다 갱신 발급해서 다시 요청하는 과정을 반복적으로 해야 한다.


https 무료 ssl 적용 - cafe24


----------------------------------------------------------------------------------------

결론 : 진행에 등록 신청까진 다 이상없이 된다.

해결하지 못한 문제 : 기본 포트 443을 웹호스팅은 할당 받지 못하기 때문에 외부인증서 승인후에 할당받은 포트를 주소 뒤에 넣어야 한다.


그렇지 않으면 https로 접속이 안되거나 연결 거부등의 경고가 뜬다.

도메인.com:44321 뭐 이런식으로.

이 부분을 없애는 방법은 없다.


와일드카드 부분도 몇문제가 있긴 한데 기억이 안나므로 우선 포스팅은 참고용으로 남겨둔다.


결과적으론 443을 제외한 포트라도 쓸려면 가능하다.


단 유료인증서를 구매후 사용할땐 443을 받을 수 있다.


이 부분은 본 글의 무료와 관련된 내용이기에 논외다.

----------------------------------------------------------------------------------------


서버에서 lets encrypt를 설치 후 3개월마다 갱신해야 하는 부분은 물론 불편한 부분이다. 그러나 crontab을 활용해서 남은 기간 상관없이 갱신하면 이부분은 해결된다.


이러지 않기 위해선 유료인증서를 이용하거나 서버에 설치 후 자동스크립트등을 활용해서 해야 한다.


따라서 지금 이 포스팅은 특정 온라인상에서의 발급을 이야기 할 것이기 때문에 논외로 한다.


정말 많은 다양한 경우의 수가 존재하기 때문에 이게 되기도 혹은 안되기도 하는건 당연한 이야기다.


그리고 또한 모든 경우의 수를 다 겪어보지는 못하기 때문에 내가 되었던 것만 기록을 한다.


서버호스팅을 받는다면야 certbot을 설치해서 셋팅하고 도메인별로 발급을 해버리면 된다. 


그게 아닐 경우다.


하려는 환경을 기준으로 잡아보자.


1.웹호스팅을 cafe24에서 받고 있는 경우.

2.도메인이 있다. 네임서버가 cafe24로 잡혀있다.

3.도메인이 이미 cafe24 웹호스팅 계정으로 연결이 되어 잡혀있다.

4.도메인에 https를 적용시키고 싶다.


위 경우다.


선행되어야 할 부분은 1번을 하고 2번을 하고 3번이 되어 있을 때다.


그 뒤 발급부분이다.


몇군데가 있지만 오늘은 ZeroSSL.com을 이용해서 적용시켜 보는 부분을 살펴보자.


전체 과정은 축약하면 아래와 같다.


1.도메인 입력 후 각종 키 발급

2.소유권 인증

3.cafe24 웹호스팅 관리 센터에 입력 후 신청



홈페이지 주소야 이름 그대로 입력을 하면 되니 따로 적을 필요는 없을 거 같고 방문 후에 online tools를 누르거나 스크롤을 아래로 내려서 FREE SSL Certificate Wizard의 start를 선택을 하면 화면 전환이 된다.



위자드 페이지의 details 부분에 도메인 입력란에 도메인을 넣자.


자신이 가진 도메인을 입력을 하면 된다.


*.와 아닌 경우에 대해서 소유 인증 부분이 다르므로 그게 미리 궁금할 경우는 포스팅 하단 부분을 살펴보자.


내도메인.com or www.내도메인.com or 와일드 카드로 *.내도메인.com 등을 입력을 하고 아래쪽에 Accept Zero SSL TOS와 Accept Let's Encrypt SA(pdf)를 체크하고 뒤쪽에 next를 누르자.



그러면 뭔가 막 만들기 시작한다. generating CSR

완료가 되고 생성이 될때까지 기다린다. 얼마 걸리지 않는다.


도메인 입력란 아래에 보면 ---BEGIN CERTIFICATE REQUEST ----라고 하고 뭔가 문자가 막생긴다. next를 눌러서 다음으로 이동한다.



그러면 generating account key를 만드는 로딩이 돌아가기 시작한다.



그리고 이메일 아래쪽에도 뭔가 BEGIN RSA PRIVATE KEY로 시작하는 뭔가 키가 생성이 되고 보여진다.



다운로드 버튼이 각각 두개가 있는데 클릭해서 받아둔다. 각각의 파일명은 domain-csr.txt와 account-key.txt이다.


참고로 왼쪽이 account-key.txt이고 오른쪽이 domain-csr이다. 받지 않고 next를 누르면 받으라고 하면서 진행이 안되니 받자. 필수로.



아래쪽 옵션으로 소유자를 확인하는 과정 중 HTTP verification와 DNS verification 두개가 있다.


먼저 HTTP verification이다.


다운로드 버튼을 눌러서 두개의 파일을 받아두자.



이제 ftp로 웹호스팅에 접속을 하자.


웹호스팅 루트(최상위)기준으로 .well-known 폴더와 그 하위에 acme-challenge 폴더를 만들자.



그리고 만든 폴더에 위에서 받아둔 파일 두개를 업로드 하자. 그다음 NEXT


만일 주소창에도 쳐보고 경로가 맞고 아무 이상이 없는데도 자꾸 Invalid 어쩌구 하고 실패가 나오고 한다면 cafe24의 스팸 쉴드를 꺼줘야 한다. 물론 아래 인증을 하고 나면 다시 사용함으로 바꿔주자.


호스팅 관리 메뉴의 보안관리 -> 스팸 SHIELD 부분이 있고 기본값이 아마 사용함일 것이다. 이것을 사용안함으로 잠시 바꾸고 다시 사이트로 돌아와서 next를 누르면 성공이 될 것이다.



이상없이 통과되었으면 아래와 같이 나온다.



그리고 스크롤 해서 키를 두개를 받을 수 있는 부분을 잘 받아둔다. 이 받은 것은 아래쪽에서 설명하겠지만 호스팅에 외부 인증서로 입력을 해야 하는 부분이기 잘 챙기자.


여기까지 해서 HTTP 도메인 인증까지이다. 이후에 실제 호스팅에 등록하고 신청 하는 부분을 보려면 포스팅 아래쪽을 쭉 내려보면 나오니 건너뛰면 된다.


와일드 카드로 발급 받을 경우가 아니라 도메인.com이나 www.도메인.com 정도만 할경우는 위의 경우로 하면 되고 *.로 받을 시는 dns verification으로 하면 된다.


나는 좀 더 편하게 HTTP verification을 하고 싶었지만 next를 누르면 DNS verification으로 자동으로 바뀐다.



여기는 DNS 레코드를 만들어서 TXT record와 value를 입력해놓는다.

적용시까지 15~20분 정도 기다려야 하는 과정이 필요하다.(나는 43분 소요됨)



이 부분이 필요한 경우도 있으므로 시간이 더 걸리더라도 테스트겸 해보기로 했다. 


어디에서 TXT record를 입력을 하고 기다리고 있을까?


자 여기서부터는 cafe24 홈페이지를 가야 한다. 로그인 후 신청한 웹호스팅 서비스관리로 이동 하자.


왼쪽에 보면 도메인 관리 부분이 있고 여기 중 dns 관리를 선택한다.



해당 도메인이 보이고 여러개면 선택을 하고 하나면 이미 연결이 되어 있다. 위쪽 DNS 관리 메뉴를 누르자.



선택한 도메인에 대해 설정할 수 있는 여러가지 부분이 있는데 그중에 TXT 관리를 선택하자.


아래쪽에 메뉴가 나타나는데 오른쪽 TXT 추가를 누른 후 입력을 하자.


하라는 대로 두가지를 입력하면 된다. 칸도 어차피 두칸 뿐이지만.


호스트명, TXT이다.


호스트명에는 zerossl에서 있던 왼쪽 Domain TXT Record의 도메인 부분을 뺀 부분을 입력을 한다.


즉 _acme-challenge를 입력을 호스트명에 하자.


그리고 cafe24의 dns관리 화면 중에 아래쪽 TXT는 value를 붙여넣기 하면 된다.



그뒤 cafe24에서 확인을 누르면 곧 있으면 닫힌다.

클릭시 아무반응 없다고 다다다다 누르지 말고 클릭 후 차분히 조금만 기다리면 설정 되었습니다라고 나오면서 닫힌다.


닫히고 난뒤 보면 카페24의 txt 관리에 보면 호스트명으로 목록이 하나 생겼다.


이게 반영이 되고 난 뒤에 zerossl의 next를 눌러야 한다. 기다리자. 다른일을 하면서 잠시 잊자 

15~20분 가량.


기다리기 지루하면 반영되었는지 안되었는지 확인해 보자. 콘솔창( cmd )를 띄워 nslookup으로 확인을 해보아도 된다.


nslookup 도메인명 혹은

nslookup -type=TXT 도메인명


간단한 서버 이름과 address만 나온다. 반영이 안된 것이다 기다려야 한다.




나는 구글 G Suite 도구상자를 통하여 제공해 주는 부분으로 찾아본다.


https://toolbox.googleapps.com/apps/dig/


이름에 도메인 명을 입력하면 관련된 정보가 나온다. TXT만 보고 싶으면 끝에 있는 TXT 메뉴를 눌러준다. 뭐 굳이 해볼 필요는 없는 부분이다.



언제 될지 모르니 지루하다. 나는 딱 32분 정도가 걸렸다.


next를 누르면 YOUR certificate is ready!라면서 되었다고 나온다. next를 눌러서 확인을 할 수 없으면 다시 돌아온다.



아래쪽에는 다시 인증서 두개를 받는 부분이 있고 이것을 잘 보관한다. 


뭐 하여간 어디에 언제 쓸지 모르니 받으라는건 잘 받고 모아두라는건 잘 모아두도록 하자.


domain-crt, domain-key이다.


마지막으로 오른쪽의 DONE NEXT를 선택한다.


성공 메시지 : 

Your certificate is ready!

Congratulations on receiving your Free SSL Certificate. Please note that certificates are valid for 90 days, but they are free to renew. To renew just repeat the process, using the same LE key and CSR as you used last time. Using the same CSR means that you do not need a new domain key (it will stay the same) and will only need to update the certificate file on your server. Keep your keys and CSR safe. Make sure you remember where you saved your generated account key!


Important:


When installing the certificate, keep in mind that it should be used with the domain key, NOT the LE key from the "Details" screen. Domain key is the one you can download on this page.

The LE key should be only used on the "Details" screen when issuing or renewing your certificate. On renewal that will allow you to skip the verification of already verified domains.

Your certificate file contains both your domain certificate and the issuer's certificate. Most modern web servers will accept them as is. However, old versions of Apache, Amazon Web Services (AWS) and some control panels would want them separately. In that case just split the certificate file in two, preserving BEGIN and END lines around both certificates. The first one is your domain certificate, the second one is the issuer's, which in control panel interface may be called "Intermediate certificate", "Certificate chain" or "CA Bundle".



이것으로 DNS 인증 과정은 끝이다.


이제 cafe24 웹호스팅에 받은 SSL을 신청하고  적용만이 남았다.

다시 카페24로 와서 해당 호스팅 메뉴 중 인증서 관리 -> 외부 인증서 관리 부분을 선택하자.


그리고 아까 받아놓은 두개의 파일의 내용을 붙여넣기 하면 된다.



첫번째 칸의 SSL CRT는 domain-crt.txt의 내용을 넣으면 아래쪽에 인증서정보가 보여지고 받은 도메인도 보여진다.


그 아래칸 개인키는 domain-key.txt를 붙여주자.


그리고 마지막으로 신청하기를 누르면 된다.



아래쪽 설치 안내 부분을 보면 설치 완료까지 영업일 기준으로 3일 걸린다고 나와있다.



몇일 뒤에 https://도메인주소로 접속을 해서 확인을 해보자 잘되는지.


이렇게 해서 길고 길었던 제로에스에스엘을 이용한 무료 인증서를 도메인에 적용하는 방법에 대해서 알아보았다.


사실 리눅스 서버가 있으면 코드 한줄이면 끝이 나는 부분이다. 물론 그전에 설치를 해야 하는 경우가 발생하지만 말이다.


let's encrypt 자체 설치가 어렵다기 보다는 그것을 설치 하기 위해 구버전이라면 파이썬도 맞춰줘야 하고 파이썬을 맞추면 yum이 동작안하니 그것도 바꿔줘야 하고 뭔가 줄줄이 사탕처럼 연결이 되는 부분이 번거롭지만 그 뒤부터는 어렵지 않다.


https로 적용이 되었다면 접속할때 마다 브라우저에서 빨간색 글자로 주의 요함등의 메세지를 이제 안봐도 된다.


물론 이후 3개월에 한번씩 갱신하는 부분이 남았지만...