acme.sh를 통한 SSL 인증서 자동으로 받는 방법

오늘은 acme.sh를 이용해서 SSL 인증서를 발급받는 방법을 알아보겠습니다.

 

먼저 acme.sh를 통해 인증서를 받기 위해서는 cloudflare를 사용해서 API로 DNS값을 자동으로 받아오게 됩니다.

 

즉 cloudflare의 ZONEID와 Account ID API ID를 알아야 합니다.

 

먼저 ZONE과 ACCOUNT는 cloudflare 메인 화면 우측 하단에 있습니다.

api key는 아래 링크에서 확인이 가능합니다.

https://dash.cloudflare.com/profile/api-tokens

ZONE.DNS의 EDIT 권한을 준 키를 가지고 있으면 됩니다.

 

CF_key, account_id, Zone_ID를 모두 입력해 줍니다.

 

export CF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje"
export CF_Account_ID="xxxxxxxxxxxxx"
export CF_Zone_ID="xxxxxxxxxxxxx"

mkdir /etc/nginx/ssl

 

발급받은 것은 아래처럼 위치에서 확인할 수 있습니다.

 

/root/.acme.sh/ 아래에 보입니다.

 

acme.sh list를 통해서 확인이 가능합니다.

 

잘못받은 인증서를 삭제하는 것은 --remove옵션을 통해서 가능합니다.

 

acme.sh --remove -d yourdomain.com --ecc

아래의 키 3개를 nginx에 입력해주시면 됩니다.

 

ssl_certificate_key /etc/nginx/ssl/privkey.pem;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_trusted_certificate /etc/nginx/ssl/chain.pem;

 

sudo nano /etc/nginx/sites-enabled/default

자동인증은  아래 명령어를 통해 가능합니다.

 

acme.sh --upgrade --auto-upgrade

 

crontab -e를 클릭해보면 업데이트가 되는 것을 알 수 있습니다.