一、安裝
參考 acme.sh文檔
$ curl https://get.acme.sh | sh
無法下載時可以使用下面的代理方式:
$ curl https://mirror.ghproxy.com/https://raw.githubusercontent.com/Neilpang/acme.sh/master/acme.sh | INSTALLONLINE=1 sh
使用命令source ~/.bashrc讓alias生效,或者再次執(zhí)行
$ alias acme.sh=~/.acme.sh/acme.sh
二、添加DNSAPI密鑰
我使用阿里云的域名,所以直接先添加阿里云的dnsapi, 登錄阿里云控制臺-頭像-accesskeys, 或者登錄后直接打開 鏈接,添加并獲取AccessKeyID和AccessKeySecret,存在舊的也可以直接使用。
其他類型的可以參考dnsapi文檔
三、生成證書
使用阿里云的dns,所以下面的dns參數(shù)是dns_ali, 例如我們申請zqyu.com這個域名的泛域名證書
$ export Ali_Key="[參數(shù)是上面申請的AccessKeyID]"
$ export Ali_Secret="[參數(shù)是上面申請的AccessKeySecret]"
$ acme.sh --issue --dns dns_ali -d zqyu.com -d *.zqyu.com
如果下載失敗可以使用 --debug參數(shù)打印更多的信息,例如
$ acme.sh --issue --dns dns_ali -d zqyu.com-d *.zqyu.com --debug
等待證書下載并保存,acme.sh 用到的所有文件都放在路徑 ~/.acme.sh/, 下載的證書也全部放在這里。
四、安裝證書
官方文檔建議不要直接使用這個目錄下的文件,所以使用命令將生成的證書安裝到其他的目錄。
例如nginx使用的證書,使用下面的命令將證書復(fù)制到/etc/letsencrypt/zqyu.com/nginx目錄中
$ acme.sh --install-cert -d zqyu.com \
--key-file /etc/letsencrypt/zqyu.com/nginx/key.pem \
--fullchain-file /etc/letsencrypt/zqyu.com/nginx/cert.pem
nginx中使用證書
ssl_certificate /etc/letsencrypt/zqyu.com/nginx/cert.pem;
ssl_certificate_key /etc/letsencrypt/zqyu.com/nginx/key.pem;
重新加載nginx配置
$ nginx -s reload
五、證書更新
acme.sh 安裝時默認(rèn)添加了一個自動更新證書的定時任務(wù)
57 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null
所以證書是可以自動更新了,上面的dnsapi賬號信息保存到了~/.acme.sh/account.conf文件中,安裝的目錄保存到了~/.acme.sh/zqyu.com/zqyu.com.conf,自動更新時會讀取這些信息。
更新證書之后需要重新加載nginx配置
$ nginx -s reload
可以將命令也加到定時任務(wù)里面
57 0 * * * "~/.acme.sh"/acme.sh --cron --home "~/.acme.sh" > /dev/null && nginx -s reload
六、 acme.sh 更新
手動更新
$ acme.sh --upgrade
設(shè)置自動更新
acme.sh --upgrade --auto-upgrade
取消自動更新
acme.sh --upgrade --auto-upgrade 0
七、 acme.sh 卸載
- 刪除文件夾
~/.acme.sh - 使用
crontab -e刪除生成的定時任務(wù) - 刪除別名
unalias acme.sh - 刪除
~/.bashrc中的. "/root/.acme.sh/acme.sh.env"