acme.sh 自動申請與更新 Let’s Encrypt SSL 免費憑證教學

下載並安裝 acme.sh

建議先更新 Ubuntu 套件

sudo apt update && sudo apt upgrade -y

記得提升 root 權限, 我透過 curl 下載, 後面的 [email protected] 請改成自己的信箱

curl https://get.acme.sh | sh -s email=user@gmail.com

[Mon Dec 30 02:37:17 PM CST 2024] Installing to /root/.acme.sh
[Mon Dec 30 02:37:17 PM CST 2024] Installed to /root/.acme.sh/acme.sh
[Mon Dec 30 02:37:17 PM CST 2024] Installing alias to ‘/root/.bashrc’
[Mon Dec 30 02:37:17 PM CST 2024] Close and reopen your terminal to start using acme.sh
[Mon Dec 30 02:37:17 PM CST 2024] Installing cron job

檢查版本

./acme.sh -v

設定預設CA, 我指定為 Letsencrypt

./acme.sh --set-default-ca --server letsencrypt

申請憑證, 我透過 DNS 驗證方式來申請

acme.sh --issue -d list.mydomain.ltd --dns --yes-I-know-dns-manual-mode-enough-go-ahead-please

上面產生的資料要在網域管理的地方, 新增 TXT record, 把 value 填進去對應的網域名稱.

取得憑證

./acme.sh --renew -d list.mydomain.ltd --yes-I-know-dns-manual-mode-enough-go-ahead-please

產生出的憑證跟Key都會放在上面的路徑裡, 接著把憑證把在服務上就可以用了

補充 acme.sh 有在 cronjob 新增一個排程

crontab -l