티스토리 뷰

 

acme.sh 는 여러 DNS 서버에 대해 자동으로 Let's Encrypt 인증서를 발급해주는 기능을 제공하고 있다.

 

자세한 내용은 아래 링크 참고

https://github.com/Neilpang/acme.sh/wiki/dnsapi

 

Neilpang/acme.sh

A pure Unix shell script implementing ACME client protocol - Neilpang/acme.sh

github.com

 

국내에 무료로 DNS 서버를 제공해주는 곳은 DNSZi 가 있다.

그런데 API 를 제공하지는 않기 때문에 acme.sh 를 사용해서 자동으로 인증서를 발급받을 수 있는 방법이 없었다.

 

하지만 몇개월 전에 이를 가능하도록 DNSZi 에서 CNAME에 언더바 ('_') 를 넣을 수 있도록 했다.

아래 DNSZi 공지사항 참고.

https://dnszi.com/notice_view.html?no=5916&

 

DNSZi - 무료 네임서버(dns) 관리 서비스! 무료파킹서비스! 무료포워딩서비스!

회원별로 여러곳의 ISP에 분산되어 있는 5개의 네임서버 제공! 로그인하시면 회원님의 네임서버를 확인하실 수 있습니다!

dnszi.com

 

이를 이용해 Let's Encrypt 인증서를 발급 받아보자.

 

1. acme.sh 다운로드 및 설치

git clone https://github.com/Neilpang/acme.sh.git
cd ./acme.sh
./acme.sh --install

 

2. DuckDNS 설정

DuckDNS(https://www.duckdns.org/) 에 계정을 생성하고 도메인을 발급 받는다.

그리고 token 을 메모해 둔다.

 

3. DNSZi 에서 CNAME 설정

DNSZi 에서 Let's Encrypt 인증서를 적용할 도메인을 선택하고

CNAME 관리 탭으로 들어가서 아래와 같이 값을 입력한다.

 

CNAME 값 : _acme-challenge

목적저(연결) 도메인 : _acme-challenge.{DuckDNS 에서 발급받은 주소}

  ex) DuckDNS에서 발급받은 주소가 mydomain.duckdns.org 라면 _acme-challenge.mydomain.duckdns.org 를 입력한다.

 

4. acme.sh 로 Let's Encrypt 인증서 발급받기

DNSZi는 API를 제공하지 않으므로 DuckDNS를 통해서 인증을 할 것이다.

이를 위해서 acme.sh 는 DNS alias mode를 지원한다.

자세한 내용은 아래를 참고.

https://github.com/Neilpang/acme.sh/wiki/DNS-alias-mode

 

Neilpang/acme.sh

A pure Unix shell script implementing ACME client protocol - Neilpang/acme.sh

github.com

 

DuckDNS 의 API를 사용할 것이므로 아래 링크에서 사용방법을 확인한다.

https://github.com/Neilpang/acme.sh/wiki/dnsapi#27-use-duckdnsorg-api

 

Neilpang/acme.sh

A pure Unix shell script implementing ACME client protocol - Neilpang/acme.sh

github.com

위 내용을 참고해서 acme.sh 명령어를 아래와 같이 수행한다.

 

DuckDNS_Token 은 위에서 메모해둔 DuckDNS의 Token을 입력한다.

CERT_FOLDER 는 인증서를 생성할 디렉토리를 지정한다.

-d 옵션 뒤에는 본인의 도메인 주소를 작성한다.

--challenge-alias 에는 DuckDNS 의 주소를 작성한다.

export DuckDNS_Token="aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee"
export CERT_FOLDER="/home/ckhacker/cert"
acme.sh --insecure --issue --dns dns_duckdns \
-d mydomain.com \
--challenge-alias mydomain.duckdns.org \
--cert-file "$CERT_FOLDER/cert.pem" \
--key-file "$CERT_FOLDER/privkey.pem" \
--fullchain-file "$CERT_FOLDER/fullchain.pem" \
--capath "$CERT_FOLDER/chain.pem"

정상적으로 인증서가 발급되면 성공이다.

해당 인증서를 적용하면 된다.

 

Wildcard 인증서를 발급 받으려면 -d 옵션의 값을 *.mydomain.com 으로 하면 된다.

 

 

5. 인증서 갱신

인증서 발급 후 60일 뒤에 인증서를 갱신 할 수 있다. 

아래의 명령어로 간단하게 갱신할 수 있다.

acme.sh --renew -d mydomain.com
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함