HTTPS (全稱:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全為目標的 HTTP 通道,在HTTP的基礎(chǔ)上通過傳輸加密和身份認證保證了傳輸過程的安全性,而如果我們直接使用HTTP來架設(shè)自己的網(wǎng)站的話是并不安全的。
Let's Encrypt可以提供免費的證書,如果能通過Let's Encrypt + 阿里云DNS來驗證域名,那個樣可以實現(xiàn)自動簽發(fā)證書了。Let's Encrypt連接阿里云可以使用官方提供的api工具。
配置阿里云
1.首先在阿里云域名管理頁面解析一個域名,記住你的A記錄的值,比如我這里解析了一個域名test.aoarasi.com到我的云服務(wù)器。

image
2.在登錄的阿里云賬戶頭像處找到AccessKey管理,然后點擊創(chuàng)建AccessKey。

image

image
創(chuàng)建時需要驗證一下手機號,之后就能成功生成,我們把AccessKey保存到本地或下載csv文件(千萬注意不要隨意泄露?。?br>

image
搭建Let's Encrypt
這里假設(shè)你已經(jīng)安裝好docker環(huán)境,使用以下命令,拉取Let's Encrypt鏡像到本地并運行
docker run \
-itd \
--cap-add=NET_ADMIN \
--name=letsencrypt \
--net=host \
-v /opt/docker/letsencrypt/:/config:rw \
-e PGID=1000 \
-e PUID=1000 \
-e EMAIL=aoarasi@88.com \
-e URL=aoarasi.com \
-e SUBDOMAINS=test \
-e ONLY_SUBDOMAINS=true \
-e DHLEVEL=2048 \
-e VALIDATION=dns \
-e DNSPLUGIN=aliyun \
-p 80:80/tcp \
-p 443:443/tcp \
-e TZ=Asia/Shanghai \
linuxserver/letsencrypt
這個命令需要主要修改以下幾個地方,其它未提及到的參數(shù)自行對應修改。
-e EMAIL=aoarasi@88.com #這里修改為自己的郵件地址
-e URL=aoarasi.com #這里修改為自己的頂級域名
SUBDOMAINS=test #這里修改為二級域名的前綴,比如我前面解析的a記錄為test
-p 80:80/tcp #這里根據(jù)情況修改,:前是主機端口,后面為映射容器端口
-p 443:443/tcp #同上
修改完后,拷貝上面的代碼運行。注意確保你所設(shè)置的端口沒有被其它程序占用。

image

image
修改阿里aliyun.ini文件,將文件中的access_key和secret為之前我保存的。
[root@mx dns-conf]# vim /opt/docker/letsencrypt/dns-conf/aliyun.ini

image
修改完后,我們重啟一下letsencrypt應用,使配置生效。
docker restart letsencrypt
# 查看啟動情況
docker logs -f letsencrypt
直到日志顯示server ready時,表示已經(jīng)成功的申請到了證書,這時使用ctrl+c組合鍵退出。

image
訪問
使用我們前面解析的域名test.aoarasi.com來訪問測試,發(fā)現(xiàn)已經(jīng)正常使用https解析了。

image
查看證書詳情,默認給我們?nèi)齻€月的有效期。

image
至此!
下期我們將分析如何使用Let's Encrypt來反向代理其它應用和使用自動續(xù)期功能,歡迎關(guān)注!