1. 程式人生 > 實用技巧 >docker執行acme.sh 安裝配置泛域名證書

docker執行acme.sh 安裝配置泛域名證書

首先是啟動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

這裡有有關於dnsapi模式的詳細用法

然後一切沒問題返回出來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)/outrun命令執行時的根目錄中的out資料夾)

設定 crontab 任務自動續簽(可不設定)

執行crontab -e來編輯 crontab 檔案,新增如下內容,儲存即可。

10 0 * * * docker exec acme.sh --cron   # acme.sh為容器名,每天0點10分執行