使用ACME部署生成阿里云免费HTTPS证书
使用ACME部署HTTPS證書
背景
現在越來越多的服務都是基于web,大多數默認使用HTTP協議。HTTP協議是一種沒有加密的協議,所有數據都通過明文傳輸,即便是只在內網使用也存在一定的安全風險。尤其是對于登錄等操作,賬號密碼通過HTTP協議明文傳輸是非常不安全的。
而HTTPS協議使用非對稱加密的方式對數據進行加密,可以讓數據傳輸變得更加安全可靠。而將HTTP協議切換成HTTPS協議,只需要增加TSL證書即可。
本文使用ACME工具來生成TSL證書,并將TSL證書部署應用于WEB服務,從而實現支持HTTPS協議的WEB服務。
ACME
ACME是The Automatic Certificate Management Environment的縮寫,詳情可以參閱其?GITHUB官方鏈接,并且有?中文說明。
ACME主要有以下幾個功能
- 向Let’s Encrypt申請證書
- 支持包括阿里云在內的多個平臺,通過多種接口為域名增加TXT解析
- 將證書部署于web服務
- 自動更新證書
安裝ACME
只需要一行命令就可以安裝ACME
$ curl https://get.acme.sh | sh或者
$ wget -O - https://get.acme.sh | sh安裝一共包括下面幾個步驟
- 將acme.sh腳本復制到~/.acme.sh路徑下
- 在當前用戶的SHELL環境配置文件中增加acme.sh=~/.acme.sh/acme.sh
- 添加一項crontab定時任務
獲取域名服務商的遠程管理密鑰
以阿里云為例,在用戶的管理臺中,找到AccessKey,安全起見可以增加一個子用戶,并給該子用戶添加管理云解析(DNS)的權限。
記住AccessKeyID和AccessKeySecret,并運行下面的命令添加相應環境變量
export Ali_Key="AccessKeyID" export Ali_Secret="AccessKeySecret"申請證書
在同一個terminal中繼續輸入下面的命令來生成證書,記得把example.com改成自己的域名
~/.acme.sh/acme.sh --issue --dns dns_ali -d example.com -d *.example.com注意查看程序運行日志,正常情況可以看到新生成證書的路徑。
自動部署
自動把證書部署于WEB服務。
~/.acme.sh/acme.sh --installcert -d example.com \ --key-file /path/to/keyfile \ --fullchain-file /path/to/fullchain \ --reloadcmd "/etc/init.d/uhttpd restart"本文以OPENWET的管理頁面為例,
~/.acme.sh/acme.sh --installcert -d example.com \ --keypath /etc/uhttpd.key \ --fullchainpath /etc/uhttpd.crt \ --reloadcmd "/etc/init.d/uhttpd restart"自動更新
在安裝ACME時就創建了一條crontab定時任務,每天凌晨檢查證書是否過期,如果過期的話就會重新申請并自動部署。
前面使用過的申請證書和自動部署的兩條命令在運行之后都會記錄下來,將來在證書自動更新時就會執行同樣的的命令和參數。例如自動部署的命令就保存于~/.acme.sh/example.com目錄下的example.com.conf文件里,reloadcmd命令是以base64編碼后的形式保存的。
所以只要確保上面申請證書和自動部署的兩部操作都正確無誤就可以了,后續的更新都會自動進行,不需要額外的操作。
參考文章
自動化部署證書 acme.sh 詳細實踐使用教程
使用acme.sh實現海量域名SSL證書自動申請與更新
如上述博客有任何錯誤或者疑問,請加VX:1755337994,及時告知!萬分感激!?
總結
以上是生活随笔為你收集整理的使用ACME部署生成阿里云免费HTTPS证书的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序如何跳转到各大电商小程序进行CPS
- 下一篇: the development of c