[호스팅] DNS(TXT)를 이용한 SSL 인증서(Let’s Encrypt) 발급 using Cafe24



Certbot을 이용하여 Let’s Encrypt SSL 인증서 발급을 진행하고 카페24 DNS 관리에서 DNS TXT를 이용하여 도메인 인증을 받아 인증서를 발급 받고 사이트에 적용하는 내용을 정리합니다.

진행과정을 요약하면 다음과 같습니다.

  • Let’s Encrypt SSL 인증서를 발급 받습니다.
  • 카페24 DNS 관리에서 DNS TXT 설정을 하고 도메인 인증을 받습니다. (
    SSL 인증서 발급 과정에서 도메인 인증 과정이 있습니다.)
  • 카페24 게시판에서 발급 받은 인증서 설치 요청을 합니다.

jackerlab.com 사이트에 HTTPS을 적용하기 위하여 방법을 찾아보았는데 대부분 서버에서 Let’s Encrypt SSL 인증서를 발급 받고 Nginx 웹서비스를 띄워서 인증을 받고 바로 웹서비스에 설정/설치하는 내용들이 대부분이였습니다.

위와 같이 진행하기에는 제약사항이 많았고 진행할 수가 없었습니다.

  • 카페24에서는 Let’s Encrpyt SSL 인증서를 적용해주는 서비스는 없었습니다. SSL 인증서를 구매해야 하였습니다.
  • 직접 Let’s Encrpyt SSL 인증서를 발급 받고 인터넷에서 검색된 방법들로 하기에는 카페24 웹호스팅 서비스를 이용하는 중이여서 root 권한이 없었습니다.
  • 또한 SSL 인증서를 발급 받는 과정에서 DNS에 매핑된 IP를 제 테스트 서버로 변경 후, 인증 받고 다시 원복하는 방법을 사용하려고도 했지만 바로 DNS가 반영되는 것도 아닌 것 같고 그동안 서비스가 중단되는 리스크가 있었습니다.

그래서 인터넷을 검색하던 중 DNS TXT를 이용하여 발급이 가능하다는 것을 알게 되었고 카페24 도메인 관리에서 TXT를 등록할 수 있음을 확인하였습니다.

그렇게 진행해 본 결과 SSL 인증서 설치를 성공하였고 매번 찾아서 하기에 어려움이 있어서 방법을 정리하게 되었습니다.


Certbot을 이용한 Let’s Encrypt SSL 인증서 발급

Let’s Encrypt SSL 인증서를 발급 받기 위하여 리눅스 환경에서 certbot을 이용하여 진행하고자 합니다.

SSL 인증서를 발급 받기 위하여 Ubuntu 리눅스 서버를 만들었고 여기에서 진행합니다.

그리고 certbot 설치는 인터넷에서 검색하면 나오는 부분으로 생략하고 발급 받는 과정을 정리합니다.

SSL 인증서 발급을 하기 위한 명령어는 아래와 같습니다.

# certbot certonly --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory --agree-tos -m xxx@xxx.com -d jackerlab.com

위 명령어에서 -m 옵션의 이메일 입력 부분과 -d 옵션의 도메인 작성 부분만 수정하여 수행하면 됩니다.

위 명령어를 수행하면 IP를 저장하겠는지 물어보는 단계가 있는데 Yes를 하고 다음 단계로 넘어 갑니다.

그러면 DNS TXT 레코드에 _acme-challenge.jackerlab.com 주소로 발급된 값을 넣으라고 나옵니다.

여기서 다음 진행을 하면 안되고 그대로 둔 상태에서 DNS TXT 설정을 한 후, Enter를 눌러야 합니다.


카페24 DNS 관리 메뉴에서 TXT 설정

이제 카페24 DNS 관리 창에 가서 이 값을 넣어 주면 되겠습니다.

카페24 DNS 관리 메뉴에 들어가면 위와 같이 보이고 가운데 ‘DNS 관리’ 버튼을 클릭합니다.

다음 DNS 관리 관련 설정 중 제일 밑에 있는 TXT 관리를 선택하고 오른쪽에 TXT 추가를 합니다.

위와 같이 TXT를 추가하고 TXT 항목에는 인증서 발급할 때 나온 코드를 입력하면 됩니다.

여기까지 DNS TXT 설정이 되었다면 인증서 발급 단계(우분투)로 돌아가서 ‘Enter’를 누릅니다.


도메인 인증 및 인증서 발급 완료

특정 경로에 인증서가 저장되었다는 안내가 확인되고 해당 경로로 이동하면 인증서 파일이 발급된 것을 확인할 수 있습니다.


외부 인증서 설치 요청

이제 이 파일들을 저장하여 카페24 외부인증서 설치 요청을 하면 됩니다.

인증서(SSL CRT) 항목에는 발급받은 인증서 파일 중 ‘cert.pem’ 파일의 내용을 복사해서 붙여 넣으면 됩니다.

그리고 인증서 확인 버튼을 누르면 하단에 SSL 인증서 정보란에 내용이 표시됩니다.

다음 개인키(Private Key)는 발급받은 인증서 파일 중 ‘privkey.pem’ 파일의 내용을 복사해서 붙여 넣고 비밀번호는 발급 시 입력하지 않았기 때문에 빈칸으로 두면 되겠습니다.

신청하기를 누르면 안내 팝업과 함께 정상적으로 설치 요청이 됩니다.


인증서 적용 확인

카페24 인증서 관리에서 설치 요청을 하고 설치 완료 메일은 오지 않았지만 사이트에 접속해서 보니 얼마 지나지 않아 설치가 된 것으로 확인되었습니다.


마치며

발급된 Let’s Encrypt 인증서의 경우 3개월 기간으로 인증서가 발급되며 이와 같은 과정을 3개월 마다 반복 해야하는 문제가 있습니다.

자동으로 연장할 수 있는 방법을 고민해봐야 할 것 같고 아니면 웹호스팅에서 서버호스팅 혹은 가상 서버호스팅 서비스로 전환하여 root 권한이 있으면 자동 갱신을 구현해야 할 것 같습니다.

또는 구글이나 AWS에서 제공하는 호스팅의 경우 Let’s Encrypt 무료 인증서를 기본으로 제공하는 것 같은데 호스팅을 바꾸는 것도 방법이지만 호스팅 업체별 가격정책이 달라서 고민이 됩니다.

구글이나 AWS는 사용한만큼 내는 것 같았고 카페24의 경우 고정 가격이기 때문 입니다.

이와 관련해서 좋은 방법이 있다면 댓글 혹은 공유 부탁 드리겠습니다.


여기까지 certbot을 이용하여 인증서를 발급 받고 DNS TXT로 도메인 인증을 받고 인증서 설치 요청하는 것까지 정리해 보았습니다.



8 thoughts on “[호스팅] DNS(TXT)를 이용한 SSL 인증서(Let’s Encrypt) 발급 using Cafe24”

  1. 안녕하세요, 글 읽으면서 저 또한 적용하고있었는데, 막히는 부분이 있어 글 남깁니다.
    sudo snap install –classic certbot로 설치가 진행되었지만,sudo ln -s /snap/bin/certbot /usr/bin/certbot 적용시 /usr/bin/certbot 심볼릭 링크 만들기 실패 : 그런 파일이나 디렉터리가 없습니다라고 뜨는데 해결방법좀 알려주실수있을까요?

    응답
  2. root 쉘 권한이 있으면 crontab으로 충분히 자동화가 가능할 것입니다. 그러나 카페24 웹호스팅은 root 권한이 없는 일반 계정이여서 인증서 관리를 통해서 외부 인증서 등록 요청을 해야 하는 것으로 알고 있고 그에 대한 방법을 포스팅 하였습니다.

    응답
  3. 혹시 crontab 을 이용해 인증서 자동갱신을 구현 할 때,
    cert.pem, privkey.pem 과 같은 키 파일만 새로 만들게 구현하나요 아니면 키 파일도 새로 만들고 cafe24 에 신청까지 자동으로 하게 구현하나요?
    cafe24 에 키 신청은 어떻게 자동화하나요?

    응답
  4. 좋은 정보 잘 봤습니다.
    인증서 자동갱신은 crontab 이용해서 많이들 하시는 것 같아요 ^^

    응답
  5. 안녕하세요. 카페24 도메인에 아마존SES 를 연결하려고 시도 하던중 올려주신 포스팅 글을 보게 되었습니다. 자세한 설명 감사합니다. 근데 제가 다른 유튜브에서 본 것도 그렇고, 올려주신 글의 캡쳐 이미지에서도 볼 수 있듯이, TXT 추가시 호스트명 앞에 빈칸이 있어, 그곳을 채울 수 있고(글 이미지에서_acme-challenge 적으신 부분이요! ) 그리고 아래에 TXT에 아마존 SES에서 받은 VALUE 값을 넣어야 할 것 같은데,
    저의 카페24 설정 화면에서는 TXT 추가시에 호스트명 쪽에 빈칸이 없습니다. 그래서 _acme-challenge 넣으신 부분에 아예 저는 빈칸이 없는데 혹시 왜 그런지 알 수 있을까요 ? 제가 뭔가 이전에 다른 설정을 잘못해둔건지 원인을 알 수없어 고민입니다. 카페24 고객센터는 답변이 너무 느리네요 ㅜㅜ 혹시 의심이 가는 문제더라도 코멘트 주시면 정말 감사하겠습니다!

    응답

Leave a Comment