使用Docker方式運行acme.sh簽發SSL證書並達到自動續簽的簡單介紹
acme.sh是一款很多人都知道的Lets encrypt證書籤發工具。它幾乎兼容LE的所有模式,並且支持自動修改nginx配置、自動續簽這類的特性,可以說真的是一款近乎完美的LE簽髮腳本。更棒的是,這款實用的腳本作者精心準備了Docker鏡像來供大家使用。對於我這種重度Docker用戶來說這簡直是方便至極。
acme.sh的作者Neilpang在其wiki上有詳細寫出Docker版的使用方法(在這裡),這裡簡單囉嗦幾句。
首先是啟動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
這裡有有關於dnsapi模式的詳細用法
然後一切沒問題返回出來Container ID之後別忘了docker ps
看一下容器是否在正常跑。
容器準備好了就可以用docker exec
跑各種acme.sh的命令了。
docker exec acme.sh --help
同樣的我們可以按照上面配置的cloudflare信息來簽發證書
docker exec acme.sh --issue --dns dns_cf -d *.example.com -d example.com
所生成的證書文件會自動保存到docker run
時創建的數據卷中。(比如這裡是$(pwd)/out
,run
命令執行時的根目錄中的out文件夾)
推薦閱讀: