1. 程式人生 > >Let'sEncrypt 免費萬用字元/泛域名SSL證書新增使用教程

Let'sEncrypt 免費萬用字元/泛域名SSL證書新增使用教程

Wildcard certificate俗稱野卡正式點一般稱為萬用字元或泛域名證書,也就是為*.lnmp.org 簽發包含所有子域名的SSL證書,從去年6、7月份左右就已經說過Let'sEncrypt將於2018年1月支援,但是幾次放鴿子後最近終於證書支援了。萬用字元證書一般還是比較貴的一般最便宜的萬用字元證書5、60美元一年,只不過Let'sEncrypt的有效期是3個月,對於一般使用者來說基本沒差別。

LNMP 1.5已經添加了對萬用字元證書的支援,生成萬用字元證書和Let'sEncrypt平常SSL證書命令有些差異(萬用字元證書命令是 lnmp dnsssl 域名dns服務商簡稱,普通證書是lnmp ssl add

),最好是使用域名DNS服務商的API,這樣才能實現自動續期。

域名DNS服務商API方式生成SSL證書

如果要生成萬用字元證書,首先要準備好一下東西:

 

    • 域名一枚
    • 支援該域名DNS服務商並在後面表格找到名稱及簡稱
    • 域名DNS服務商API操作所需的引數,如Key、Secret或Token之類的。
    • 已安裝lnmp 1.5最新版或者升級到1.5最新版(不確定的話可以下載最新的安裝包,安裝包目錄下執行 ./upgrade1.x-1.5.sh)



        下面我們已cloudxns為例,cloudxns API需要到 https://www.cloudxns.net/AccountManage/apimanage.html 這裡獲取API KEY和SECRET KEY(文章最後我們會附上常見域名DNS服務商的簡稱、獲取API方法和所需的引數)。

 

        通過表格可以知道,cloudxns的簡稱為cx,我們也通過cloudxns網站獲取到了API KEY和SECRTET KEY,下面需要在終端裡將API操作所需的引數輸出供程式使用,命令如下:
export CX_Key="123456"
export CX_Secret="abcdef"

其他域名DNS服務的API引數命令可以在文章後面表格裡找,該項必須export,否則將提示You don't specify dnspod api key and key id yet.失敗,而且是嚴格區分大小寫!!!

下面開工開始新增虛擬主機並生成萬用字元SSL證書,命令:lnmp dnsssl cx

lnmp dns cx

cx為域名DNS服務商的簡稱,如果使用的其他DNS服務商更換為其他DNS服務商的簡稱,可以在文章後面對照表格里檢視DNS服務商對應簡稱。

lnmp-1.5-dnsssl.png
分別按提示輸入域名、新增更多域名、網站目錄、是否啟用日誌等選項,詳細介紹可以看上圖文字註釋。

注意:如果要生成萬用字元/泛域名SSL證書,輸入其他域名時不要輸入www.lnmp.org 的域名,否則將生成失敗!!!

如果之前輸出的API引數沒問題的話,等幾分鐘就會生成完畢,並提示"Let's Encrypt SSL Certificate create successfully."。

再 https://www.你的域名.com 訪問就可以了。

域名DNS服務商名稱、簡稱、API引數和開通API對照表
API引數中Key、Secret等之類的引數都要改成你自己API的不然一樣不行

服務商名稱 服務商簡稱 所需API引數 獲取API引數地址
cloudxns cx export CX_Key="123456"
export CX_Secret="abcdef"
點選訪問
dnspod (cn大陸版) dp export DP_Id="123456"
export DP_Key="abcdef"
點選訪問
aliyun ali export Ali_Key="123456"
export Ali_Secret="abcdef"
點選訪問
cloudflare cf export CF_Key="123456"
export CF_Email="[email protected]"
點選訪問
linode linode export LINODE_API_KEY="123456" 點選訪問
he he export HE_Username="username"
export HE_Password="password"
he的使用者名稱密碼
digitalocean dgon export DO_API_KEY="123456" 點選訪問
namesilo namesilo export Namesilo_Key="123456" 點選訪問
aws aws export AWS_ACCESS_KEY_ID=123456
export AWS_SECRET_ACCESS_KEY=abcdef
點選訪問
namecom namecom export Namecom_Username="username"
export Namecom_Token="123456"
點選訪問
freedns freedns export FREEDNS_User="username"
export FREEDNS_Password="password"
freedns的使用者名稱密碼
godaddy gd export GD_Key="123456"
export GD_Secret="abcdef"
點選訪問
yandex yandex export PDD_Token="abcdef" 點選訪問

這裡只列出了國內使用者使用比較多的DNS服務商,也可以去 https://github.com/Neilpang/acme.sh/tree/master/dnsapi 檢視其他服務商的具體使用方法。

手動DNS新增TXT記錄生成SSL

當然還有另外一種方式也是採用DNS,但是需要手動在域名DNS服務商那邊新增TXT記錄,命令是:lnmp dnsssllnmp dns
注意使用手動DNS將無法自動續期!!!

新增虛擬主機過程的資訊和前面使用API所填寫的資訊都是一樣的,只不過不需要export API的相關資訊。

lnmp-1.5-dns-manual-add-records.png
出現改提示就需要去域名DNS服務商網站上手動新增上提示的主機記錄和值,如果是新增的二級域名,如圖,就需要在域名DNS服務商後臺上新增的TXT主機記錄為_acme-challenge.vpser

值為圖中黃色框中的綠色的所有字元。如果是為lnmp.org生成SSL證書的話主機記錄直接新增 _acme-challenge 就可以了,注意如果新增多個域名每個域名都要按提示的主機記錄和值新增到域名DNS服務商後臺上。

lnmp-1.5-cloudxns-records.png

如果新增的主機記錄和記錄值都沒問題的話就會自動生成證書並新增好虛擬主機,就可以直接使用了。

HTTPS綠鎖問題的說明

常說的綠鎖即在域名前面有一把綠鎖的鎖,表示該網站在使用https安全協議連結的。

website-secure-info-not.png
狀態的話就這3中,安全的、資訊或不安全和不安全或危險。

最常見不顯示綠鎖的原因

該頁面上有http不安全的資源載入,如圖片、js、css之類的,最簡單的排查方法Chrome中按F12、點選Console選項卡再F5重新整理頁面,就會有Mixed Content: The page at 'https://lnmp.org/install.html' was loaded over HTTPS, but requested an insecure image 'http://lnmp.org/images/1.4/lnmp1.4-install-1.png'. This content should also be served over HTTPS. 之類的提示,就是說明了在install.html這個頁面上有lnmp1.4-install-1.png這個檔案的是使用http載入的。找到對應的地方改成https連結就可以了。

如果證書到期或者域名與改SSL證書裡的域名不匹配的話就會顯示不安全或危險。