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方式生成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
cx為域名DNS服務商的簡稱,如果使用的其他DNS服務商更換為其他DNS服務商的簡稱,可以在文章後面對照表格裏查看DNS服務商對應簡稱。
分別按提示輸入域名、添加更多域名、網站目錄、是否啟用日誌等選項,詳細介紹可以看上圖文字註釋。
註意:如果要生成通配符/泛域名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 dnsssl 或 lnmp dns
註意使用手動DNS將無法自動續期!!!
添加虛擬主機過程的信息和前面使用API所填寫的信息都是一樣的,只不過不需要export API的相關信息。
出現改提示就需要去域名DNS服務商網站上手動添加上提示的主機記錄和值,如果是添加的二級域名,如圖,就需要在域名DNS服務商後臺上添加的TXT主機記錄為_acme-challenge.vpser
值為圖中黃色框中的綠色的所有字符。如果是為lnmp.org生成SSL證書的話主機記錄直接添加 _acme-challenge 就可以了,註意如果添加多個域名每個域名都要按提示的主機記錄和值添加到域名DNS服務商後臺上。
如果添加的主機記錄和記錄值都沒問題的話就會自動生成證書並添加好虛擬主機,就可以直接使用了。
HTTPS綠鎖問題的說明
常說的綠鎖即在域名前面有一把綠鎖的鎖,表示該網站在使用https安全協議鏈接的。
狀態的話就這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證書裏的域名不匹配的話就會顯示不安全或危險。
Let'sEncrypt 免費通配符/泛域名SSL證書添加使用教程