acme.sh 倉庫地址:acme.sh
acme.sh 中文說明:官方中文說明
各個 dnsapi 說明:dnsapi
一、安裝并配置 acme.sh
安裝 acme,后面my@example.com換成自己的郵箱
curl https://get.acme.sh | sh -s email=my@example.com
如果上面官方下載地址失敗 或者 太慢,可以選用國內(nèi)的備用地址
curl https://gitcode.net/cert/cn-acme.sh/-/raw/master/install.sh?inline=false | sh -s email=my@example.com
然后在 root 目錄下ls -a
就可以看到有一個.acme.sh
的文件夾,進(jìn)入后里面有個 account.conf 配置文件,里面有前面安裝時填寫的郵箱,不知道有什么用,估計到時候會給通知什么的吧
進(jìn)入.acme.sh 目錄后使用下面命令開啟 acme 自動更新
./acme.sh --upgrade --auto-upgrade
在這里最好先切換一下證書類型,看下面續(xù)期時出現(xiàn)過問題
./acme.sh --set-default-ca --server letsencrypt
二、配置 DNS API
通過官方說明文檔可知,acme.sh 申請證書有兩種方式,http 和 dns 驗(yàn)證
- http 方式需要在你的網(wǎng)站根目錄下放置一個文件, 來驗(yàn)證你的域名所有權(quán),完成驗(yàn)證. 然后就可以生成證書了
- 手動 dns 方式, 手動在域名上添加一條 txt 解析記錄, 驗(yàn)證域名所有權(quán)
第一種方便一些,只需要一條命令就完成了,前提是需要有服務(wù)器并且在此服務(wù)器中搭建了網(wǎng)站
第二種更靈活一些,只需要有域名手動添加驗(yàn)證即可,不需要服務(wù)器,但是這種方式需要配置 Automatic DNS API,否則 acme.sh 將無法自動更新證書,此外配置了 DNS API 就不需要手動添加驗(yàn)證了
我使用的是 dnspod,所以這里寫一下 dnspod 的,dnspod 的 token 生成頁面,也可以進(jìn)入dnspod 網(wǎng)站,點(diǎn)擊右上角頭像,然后點(diǎn)擊 API 密鑰,選擇 DNSPod Token,就到了 dnspod 的 token 生成頁面
點(diǎn)擊創(chuàng)建密鑰,輸入獲取到 ID 和 token,保存下來
然后回到服務(wù)器配置剛才拿到的密鑰
export DP_Id="密鑰ID"
export DP_Key="密鑰token"
三、申請證書
使用下面命令申請證書,mydomain.com 就是需要申請證書的域名,支持通配符域名
./acme.sh --issue --dns dns_dp -d mydomain.com -d www.mydomain.com
證書很快就申請下來了,這里給出的 api id 和 api key 會被自動記錄下來, 將來你在使用 dnspod api 的時候, 就不需要再次指定了,直接生成就好了
申請的證書默認(rèn)是放在/root/.acme.sh/
目錄下的,如果要在申請證書更改證書存放目錄可以加入--cert-home
參數(shù),使用下面命令申請證書,其中 mydomain.com 是需要申請證書的域名,sslpath 是存放證書的目錄
./acme.sh --issue --dns dns_dp -d mydomain.com --cert-home sslpath
四、刪除證書
使用下面命令刪除證書,mydomain.com 就是需要刪除證書的域名,支持通配符域名
./acme.sh --remove -d mydomain.com
四、使用
看上面申請證書后給的路徑
第一個是證書位置
第二個是證書密鑰位置
可以直接使用,我這里使用的是寶塔面板,所以直接配置 ssl 就行了,雖然是寫需要 pem 格式,但是上面 cer 就可以直接使用
保存之后剩余 3 個月左右到期了,按理說用這個 acme.sh 到了 30 天以內(nèi)就會自動續(xù)期
上面是重新寫的,以下是之前寫的,記錄了一個問題沒有刪除,之前寫的使用了freeSSL,但是使用acme.sh其實(shí)是不需要使用其他的配合,之前也是先接觸到freeSSL,所以按照freeSSL教程做的,實(shí)際上使用其他的還可能會產(chǎn)生其他不太好的問題,之前有記錄,但是這次重寫刪掉了
時隔兩個月更新
上面可以看到申請的時候是 Jul 月也就是 7 月,也就是說到 10 月份到期,那么在 9 月份的時候應(yīng)該會自動續(xù)期
上去之后看一眼,cer 是證書文件,key 是私鑰文件,都沒有更新,變得是 csr 文件,這個文件是申請前創(chuàng)建的,與這個無關(guān),但是可以看出是有自動續(xù)期,但是沒有續(xù)期成功
我這里使用下面命令手動續(xù)期一下,看看是哪里的問題
acme.sh --cron --debug 2
結(jié)果后面給我報了什么連接超時,再次查看文件還是那三個變了,其他的沒變
看網(wǎng)上說有時候連接超時是因?yàn)?ZeroSSL 的原因,下面說一下
目前 acme.sh 支持 Let’s Encrypt、Buypass、ZeroSSL、SSL.com 和 Google Public CA,默認(rèn)使用 ZeroSSL,如果需要更換可以使用下面命令:
切換 Let's Encrypt
acme.sh --set-default-ca --server letsencrypt
切換 Buypass
acme.sh --set-default-ca --server buypass
切換 ZeroSSL
acme.sh --set-default-ca --server zerossl
切換 SSL.com
acme.sh --set-default-ca --server ssl.com
切換 Google Public CA
acme.sh --set-default-ca --server google
我這里更換為 Let’s Encrypt
然后再手動續(xù)期一下就正常了
這里可以看到 key 還是沒有變化的,但是證書是變了的,可以使用新的證書和這個 key
測試了一下更換證書后又是 89 天了
然后因?yàn)槲疫@里使用的是寶塔面板,寶塔面板在使用 ssl 時會把填寫的內(nèi)容生成一個證書并保存到/www/server/panel/vhost/cert/網(wǎng)站 目錄下,因此 acme 自動續(xù)期后寶塔面板的 ssl 并不會使用續(xù)期后的證書,這里只需要把網(wǎng)站的配置文件改一下就行
把這兩行路徑改為 acme.sh 自動續(xù)期的證書和私鑰的路徑即可文章來源:http://www.zghlxwxcb.cn/news/detail-411883.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-411883.html
到了這里,關(guān)于acme自動化---免費(fèi)SSL證書申請并自動續(xù)期的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!