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)/outrun命令執行時的根目錄中的out文件夾)


推薦閱讀:
相關文章