ZeroSSL을 사용해보자

카테고리 : 소개/기타

최근 Let's Encrypt로 문제가 발생하고, 해결방법은 사용자가 고치는 방법밖에 없어 무료 SSL으로 알고있던 ZeroSSL을 이용해봤습니다.

 

 

ZeroSSL 발급

ZeroSSL은 사이트에서 간단히(이메일) 회원가입후 어렵지 않게 발급가능했습니다.

(과정이 매우 간단하니 글로만 작성합니다.)

 

  1. 입력값만 제대로 입력하고 버튼클릭
  2. 서버인증을 도메인 관리자 메일, DNS의 CNAME, 웹서버에 업로드 중 1개로 하면 끝이었습니다.
  3. 이후 인증서 파일을 다운받아 설치하면됐습니다.

 

기존에 ZeroSSL은 Let's Encrypt를 대신 발급해주던 서비스였는데 지금은 Sectigo(구 Comodo)기반의 자체 인증서를 발급해주네요.

 

 

장점

  • Let's Encrypt와 동일하게 90일간 무료로 인증서를 사용할 수 있습니다.

Let's Encrypt와 유사하게 무료발급 이외에 딱히 장점은 없는것 같습니다.

유료 플랜의 가격도 타사에 비해 저렴하지 않고, 대부분의 기능은 유료로 제공되기에 다른 이점은 없는것 같습니다.

 

 

단점

  • 도메인 3개만(3번만) 가능합니다.

 

단점 해결

ACME방식으로 이용시 Let's Encrypt와 동일하게 무제한입니다.

기존 certbot사용시 설정을 조금만 바꾸면 Let's Encrypt에서 ZeroSSL로 변경 가능할것으로 보입니다.

 

 

 

 

발급방식에 따른 차이

발급방식에 따라 인증서에 조금의 차이가 있었습니다.

왼쪽은 사이트에서, 오른쪽은 ACME방식으로 발급받은 인증서

사이트의 발급과정ACME방식의 발급과정에서 인증경로에 차이가 있었습니다. (사이트 방문자의 사용에는 차이없음)

 

인증서를 쉽게 관리하려면 ACME방식을 이용하는게 좋습니다.

 

ACME은 파트너라고 되어있는곳에서 했는데 대부분이 Let's Encrypt기반이라 경우에 따라 ACME 설정을 변경해야합니다. 

(각 ACME 제공문서를 참고해주세요. 경우에 따라 문서에 없는 경우도, 명령어로 지원하는 경우도, URL을 직접 수정하는 경우등 다양하게 있는것 같습니다.)

 

윈도우용 ACME인 win-acme은 settings.json에서 "https://acme-v02.api.letsencrypt.org/" 를 "https://acme.zerossl.com/v2/DV90" 로 변경하였습니다.

또는 실행시 --baseuri "https://acme.zerossl.com/v2/DV90" 명령줄으로 변경도 가능했습니다.

 

대시보드에서 발급 관리기능

대시보드에서 생성된 인증서를 갱신하거나 등록가능합니다.

 

사이트에서 생성한 인증서는 "90-Day SSL"로, ACME로 생성한 인증서는 "Certificate"로 다르게 표기되며,

ACME로 생성한 인증서는 사이트에서 갱신(renew)이 불가합니다. (발급받은 ACME방식으로 갱신가능)

 

 

Certbot

Certbot사용도 간단합니다.

공식적으로는 zerossl-bot 깃허브에서 certbot 래퍼를 제공하나 해당방법을 굳이 사용할 필요는 없습니다.

기존의 Certbot 세팅에서 단순히 명령줄 인수 3개만 추가하면 ZeroSSL을 통해 ACME발급가능합니다.

--eab-kid "$ZEROSSL_EAB_KID" --eab-hmac-key "$ZEROSSL_EAB_HMAC_KEY" --server "https://acme.zerossl.com/v2/DV90"

Developer탭에서 EAB발급

$ZEROSSL_EAB_KID, $ZEROSSL_EAB_HMAC_KEY는 위 이미지의 Generate버튼을 이용해 발급가능합니다.

 

예를들어 기존 crontab 명령어에 이렇게 있었다면

certbot renew --renew-hook="서버(Apache/Nginx)에 따른 재실행 명령어"

아래와 같이 변경하면 됩니다.

certbot renew --eab-kid "$ZEROSSL_EAB_KID" --eab-hmac-key "$ZEROSSL_EAB_HMAC_KEY" --server "https://acme.zerossl.com/v2/DV90" --renew-hook="서버(Apache/Nginx)에 따른 재실행 명령어"

 

 

윈도우 환경에서 SSL 자동갱신법

https://hi098123.tistory.com/439

 

 

궁금하신점이 있으시면 댓글 남겨주세요.

 

저작권 보호안내
무단 전재, 재배포 행위는 금지됩니다. (글을 복사하여 게시금지)
본문의 일부(링크용 문장) 인용은 가능하지만, 출처와 링크(a 태그)를 남기셔야 됩니다.
(웹툴을 이용하고, 스크린샷/녹화하는것은 상관없습니다.)

예외적으로. 저에게 허락받은 경우에는 본문을 전재할 수 있습니다.

만약, 본문 공유를 원하신다면 링크 공유를 해주세요

저작권 정책 확인하기
링크 공유하기

 댓글 (2개)


  • 렛쯔실망이야 2021.10.06 17:55 댓글주소수정/삭제댓글쓰기

    안녕하세요. 기존에 Letsencrypt certbot로 사용중이었는데요.
    # ./certbot-auto certonly --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d domain1.com -d *.domain1.com

    이런식으로 일반도메인과 와일드카드도 적용되도록 항상 신규로 발급되도록 해서 사용했었습니다. (신규 발급후 리뉴얼은 몇번 실패해서 그냥 계속 신규로만 발급 중)

    혹시 위 문구를 기준으로 했을때 수정되야 하는 부분이 어떤것인지 알려주실 수 있을까요?


    • hi098123 2021.10.07 02:07 신고 댓글주소수정/삭제

      제가 발급받은건
      certbot certonly --eab-kid "$ZEROSSL_EAB_KID" --eab-hmac-key "$ZEROSSL_EAB_HMAC_KEY" --server "https://acme.zerossl.com/v2/DV90" --webroot -w /var/www/zerossl -d zerossl.hi098123.com

      문의주신 부분에서 바꿔보면
      # ./certbot-auto certonly --eab-kid "$ZEROSSL_EAB_KID" --eab-hmac-key "$ZEROSSL_EAB_HMAC_KEY" --server "https://acme.zerossl.com/v2/DV90" --manual --preferred-challenges dns -d domain1.com -d sub1.domain1.com -d sub2.domain1.com -d sub3.domain1.com

      eab kid와 hmac key는 본문에 발급방법이 있습니다.
      $ZEROSSL_EAB_KID
      $ZEROSSL_EAB_HMAC_KEY 값 대신 넣어주세요.

      - 와일드카드는 아마 안됩니다.
      개별 도메인별로 만들도록 세팅해주세요.

      - dns방식은 서버가 중단될겁니다.
      저는 dns방식이 아닌 서버파일 생성방식으로 생성했습니다.
      서버 루트 폴더만 지정하면 되는 방식으로 간단합니다.