docker執行acme.sh 安裝配置泛域名證書
阿新 • • 發佈:2020-07-18
首先是啟動daemon的命令
docker run --rm -itd \ -v "$(pwd)/out":/acme.sh \ --net=host \ --name=acme.sh \ neilpang/acme.sh daemon
這樣就會後臺掛一個包含acme.sh的容器,並且這個容器會自動走定時任務以便自動續簽證書。這裡注意如果你使用了dnsapi(比如說籤wildcard之類的場景),別忘了在這裡使用-e
引數去配置你的環境變數,像這樣:
docker run --rm -itd \ -v "$(pwd)/out":/acme.sh \ -e CF_Email="[email protected]" \ -e CF_Key="asasasasasadasasas" \ --net=host \ --name=acme.sh \ neilpang/acme.sh daemon
博主使用騰訊雲域名如下(-v,DP_Key,DP_Id配置自行修改):
docker run -itd \ -v "/dnmp/services/nginx/ssl/acme":/acme.sh \ -e DP_Key="xxxxxxxxxxxxxxxx" \ -e DP_Id="1111" \ --net=host \ --name=acme.sh \ neilpang/acme.sh daemon
然後一切沒問題返回出來Container ID之後別忘了docker ps
看一下容器是否在正常跑。
容器準備好了就可以用docker exec
跑各種acme.sh的命令了。
docker exec acme.sh --help
同樣的我們可以按照上面配置的資訊來簽發泛域名證書
docker exec acme.sh --issue --dns dns_dp -d aa.com -d *.aa.com
所生成的證書檔案會自動儲存到docker run
時建立的資料卷中。(比如這裡是$(pwd)/out
,run
命令執行時的根目錄中的out資料夾)
設定 crontab 任務自動續簽(可不設定)
執行crontab -e
來編輯 crontab 檔案,新增如下內容,儲存即可。
10 0 * * * docker exec acme.sh --cron # acme.sh為容器名,每天0點10分執行