docker獲取Let's Encrypt永久免費SSL證書的方法(圖文)
一、起因
官方的cerbot太煩了,不建議使用還不如野蠻生長的acme.sh,而這里介紹docker運行cerbot獲取Let's Encrypt永久免費SSL證書
二、選型
cerbot的證書不會自動刷新日期,但是acme.sh自帶這功能,每天凌晨0:00自動檢測過期域名并且自動續期
選擇docker運行cerbot,是為了讓服務器里盡量少配置和無意義的程序,方便管理。例如Let's Encrypt需要的Python2.7,git,pip我們都不需要裝在宿主機內,容器就自己配置好了
三、拉取鏡像
1 | $ docker pull neilpang /acme .sh |
以dns mode運行docker命令
1 2 3 4 5 |
$ docker run -- rm -it \ - v "$(pwd)/out" : /acme .sh \ -e Ali_Key= "xxxxxx" \ -e Ali_Secret= "xxxx" \ neilpang /acme .sh --issue --dns dns_ali -d domain.cn -d *.domain.cn |
成功之后,證書會保存在out文件夾,也可以指定路徑,修改上面第一行 "$(pwd)/out",改為你想要保存的路徑即可
四、注意
--dns dns_ali
要根據你域名的dns模式選擇,顯然這里是阿里。所以前面的兩項配置才是Ali_Key,Ali_Secret
Ali_Key,Ali_Secret
需要從阿里云后臺獲取
不知道自己域名的dns模式可以去這里查找 https://github.com/acmesh-official/acme.sh/wiki/dnsapi
如何獲取域名的dns模式及相關配置,可以直接找你域名的客服
用騰訊做例子
1 2 3 4 5 |
$ docker run -- rm -it \ - v "$(pwd)/out" : /acme .sh \ -e DP_Id= "xxxxxx" \ -e DP_Key= "xxxx" \ neilpang /acme .sh --issue --dns dns_dp -d domain.cn -d *.domain.cn |
騰訊這坑爹收購了DNSPod,所以是dns_dp
我一開始還以為是TX_Id,TX_Key,dns_tx之類的
找了一圈,發現自己的阿里服務器正常使用,但就是步驟沒問題
于是問公司拿到域名賬戶,問騰訊客服才知道這事
當然,這跟騰訊無關,坑爹公司的鍋更大
老子干這個啥都沒有
五、命令
docker run --rm 的命令懂得都懂,運行完就退出,這樣能執行個錘子自動更新ssh證書
方法一
不docker run --rm,直接docker run就好了
優點簡單,缺點一個容器專門跑這個,太浪費資源了
方法二
定時任務跑docker run --rm,原文的例子就有了
1 2 3 4 5 |
#run cron job docker run -- rm -it \ - v "$(pwd)/out" : /acme .sh \ --net=host \ neilpang /acme .sh -- cron |
其實--cron是linux的crontab參數,具體用法不累贅了
喜歡用crontab的用crontab
不喜歡的看看 博文里的二
方法三
把這玩意和docker守護進程綁一起,畢竟守護進程必須開,不算浪費資源
這是acme.sh的推薦做法
同樣帶原文的例子
1 2 3 4 5 |
$ docker run -- rm -itd \ - v "$(pwd)/out" : /acme .sh \ --net=host \ --name=acme.sh \ neilpang /acme .sh daemon |
六、最終結果
1 2 3 4 5 |
$ docker run -- rm -itd \ - v "$(pwd)/out" : /acme .sh \ -e DP_Id= "xxxxxx" \ -e DP_Key= "xxxx" \ neilpang /acme .sh --issue --dns dns_dp -d domain.cn -d *.domain.cn daemon |
更多相關
相關文章
- linux的目錄結構;Linux系統各個目錄的作用介紹
- mssql2000數據庫通過附加數據庫轉到SQL2008(圖文)
- Win2012配置asp網站(圖文教程)
- win2008 r2系統iis7中如何設置ip限制(圖文)
- IIS7 支持html頁面包含(include)html頁面 IIS設置與代碼編寫
- Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+phpMyAdmin 2.10.1環境配置安裝
- 網站采集入庫502 Bad Gateway錯誤時,修改PHP 配置修改參考
- 出錯了,[騰訊云COSFS]運行時發生錯誤!qcloud_cos.cos_exception.CosClientError: SecretId and SecretKey is Required!
- 騰訊Linux云主機快速掛載云盤命令,設置開機自動掛載詳細圖文教程
- 騰訊輕量云主機win2012系統掛載SSD云硬盤操作步驟(圖文)