LNMP Let'sEncrypt免費通配符/泛域名SSL證書添加使用教程

![]()
Wildcard certificate俗稱野卡正式點一般稱為通配符或泛域名證書,也就是為*.vpser.net 簽發(fā)包含所有子域名的SSL證書,從去年6、7月份左右就已經(jīng)說過Let'sEncrypt將于2018年1月支持,但是幾次放鴿子后最近終于證書支持了。通配符證書一般還是比較貴的一般最便宜的通配符證書5、60美元一年,只不過Let'sEncrypt的有效期是3個月,對于一般用戶來說基本沒差別。
LNMP 1.5或更高版本已經(jīng)添加了對通配符證書的支持,生成通配符證書和Let'sEncrypt平常SSL證書命令有些差異(通配符證書命令是 lnmp dnsssl 域名dns服務(wù)商簡稱,普通證書是lnmp ssl add),最好是使用域名DNS服務(wù)商的API,這樣才能實現(xiàn)自動續(xù)期。
域名DNS服務(wù)商API方式生成SSL證書
域名DNS服務(wù)商的名稱及簡稱
域名DNS服務(wù)商API操作所需的參數(shù),如Key、Secret或Token之類的。
已安裝lnmp 1.8或者升級到1.8及更高版本(不確定的話可以下載最新的安裝包,安裝包目錄下運行 ./upgrade1.x-1.8.sh)
下面我們以阿里云DNS為例,需要到 https://ram.console.aliyun.com/users 這里創(chuàng)建子賬戶,選擇"Open API 調(diào)用訪問",獲取API KEY和SECRET KEY(文章最后我們會附上常見域名DNS服務(wù)商的簡稱、獲取API方法和所需的參數(shù))。
通過表格可以知道,阿里云DNS的簡稱為ali,我們前面獲取到了API KEY和SECRTET KEY,需要先在在終端里將API操作所需的參數(shù)輸出供程序使用,命令如下:
export Ali_Key="123456"
export Ali_Secret="abcdef"
注意!注意!注意!這里只是例子,其他域名DNS服務(wù)的API參數(shù)命令可以在文章后面對照表中查找,別照抄!別照抄!別照抄!,該項必須export,否則將提示You don't specify dnspod api key and key id yet.失敗,而且是嚴格區(qū)分大小寫!!!
下面開工開始添加虛擬主機并生成通配符SSL證書,命令:lnmp dnsssl ali 或 lnmp dns ali? ?注意!注意!注意!ali為DNS服務(wù)商的簡稱,下面對照表中查找,別照抄!別照抄!別照抄!如dnspod的DNS就把ali就改成dp !!!
ali為域名DNS服務(wù)商的簡稱,如果使用的其他DNS服務(wù)商更換為其他DNS服務(wù)商的簡稱,可以在文章后面對照表格里查看DNS服務(wù)商對應(yīng)簡稱。

分別按提示輸入域名、添加更多域名(多個域名空格隔開,如 *.lnmp.org? *.test.lnmp.org)、網(wǎng)站目錄、是否啟用日志等選項,詳細介紹可以看上圖文字注釋。
注意:如果要生成通配符/泛域名SSL證書,輸入其他域名時不要輸入www.lnmp.org 的域名,否則將生成失敗!!!
如果之前輸出的API參數(shù)沒問題的話,等幾分鐘就會生成完畢,并提示"Let's Encrypt SSL Certificate create successfully."。
再 https://www.你的域名.com 就可以了。
使用域名DNS服務(wù)商API方式只生成SSL證書不創(chuàng)建網(wǎng)站配置文件
該方式只在lnmp 1.6或更高版本上有,其他版本的可以升級到1.6進行使用。
命令:lnmp onlyssl ali? ?注意!注意!注意!ali為DNS服務(wù)商的簡稱,下面對照表中查找,別照抄!別照抄!別照抄!如dnspod的DNS就ali就改成dp !!!
這里的ali和上述帶配置文件的參數(shù)是一樣的,如果是其他DNS服務(wù)商,參考下面表格進行更改。只不過在添加過程中不需要輸入網(wǎng)站目錄、是否開啟日志等選項。
該模式下之創(chuàng)建SSL證書并不生成網(wǎng)站配置文件,方便用戶在多個虛擬主機上使用同一個證書。自己可以另外 lnmp vhost add 或 lnmp ssl add 創(chuàng)建SSL站點配置文件
域名DNS服務(wù)商名稱、簡稱、API參數(shù)和開通API對照表
API參數(shù)中Key、Secret等之類的參數(shù)都要改成你自己API的不然一樣不行
| 服務(wù)商名稱 | 服務(wù)商簡稱 | 所需API參數(shù) | 獲取API參數(shù)地址 |
|---|---|---|---|
| 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="abc@example.com" |
點擊訪問 |
| 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" |
點擊訪問 |
手動DNS添加TXT記錄生成SSL
當然還有另外一種方式也是采用DNS,但是需要手動在域名DNS服務(wù)商那邊添加TXT記錄,命令是:lnmp dnsssl 或 lnmp dns
添加虛擬主機過程的信息和前面使用API所填寫的信息都是一樣的,只不過不需要export API的相關(guān)信息。

出現(xiàn)改提示就需要去域名DNS服務(wù)商網(wǎng)站上手動添加上提示的主機記錄和值,如果是添加的二級域名,如圖,就需要在域名DNS服務(wù)商后臺上添加的TXT主機記錄為_acme-challenge.vpser
值為圖中黃色框中的綠色的所有字符。如果是為lnmp.org生成SSL證書的話主機記錄直接添加?_acme-challenge 就可以了,注意如果添加多個域名每個域名都要按提示的主機記錄和值添加到域名DNS服務(wù)商后臺上。

如果添加的主機記錄和記錄值都沒問題的話就會自動生成證書并添加好虛擬主機,就可以直接使用了。
HTTPS綠鎖問題的說明
常說的綠鎖即
在域名前面有一把綠鎖的鎖,表示該網(wǎng)站在使用https安全協(xié)議鏈接的。

狀態(tài)的話就這3中,安全的、信息或不安全和不安全或危險。
最常見不顯示綠鎖的原因
該頁面上有http不安全的資源加載,如圖片、js、css之類的,最簡單的排查方法Chrome中按F12、點擊Console選項卡再F5刷新頁面,就會有Mixed Content: The page at 'http://www.0794baidu.com/build/lnmp-v1-5-beta.html' was loaded over HTTPS, but requested an insecure image 'http://www.0794baidu.com/images/lnmp.png'. This content should also be served over HTTPS. 之類的提示,就是說明了在lnmp-v1-5-beta.html這個頁面上有l(wèi)nmp.png這個文件的是使用http加載的。找到對應(yīng)的地方改成https鏈接就可以了。
如果證書到期或者域名與改SSL證書里的域名不匹配的話就會顯示不安全或危險。
如在使用過程中有任何問題可以在論壇反饋。
VPS論壇邀請碼:ded9de22baFqvZiU?有效期至:2018-3-31 09:05
>>轉(zhuǎn)載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/manage/lnmp-letsencrypt-wildcard-ssl-howto.html










支持,但是需要更新acme.sh,具體使用方法可以查看:https://github.com/acmesh-official/acme.sh/wiki/dnsapi2#dns_spaceship
對照表以外的DNS服務(wù)商API要怎么操作呢比如spaceship
手動DNS無法自動續(xù)期
手動DNS添加TXT記錄生成SSL 的方法
是不是也可以自動續(xù)期
不支持
軍哥,百度云的 API 能不能支持?
@zeerd, dns的記錄只是在生成ssl證書和續(xù)期時生成記錄和值,生成完就會刪除
鏈接重置如果是國外的vps有可能是有qiang的干擾
軍哥
按這個配置,看起來都成功了。
然后使用lnmp vhost add添加子域名。
添加之后,http可以訪問,https偶爾可以成功,但是絕大部分時候會訪問失敗。失敗時,瀏覽器上有時候提示“無法訪問此網(wǎng)站 xxxx 意外終止了連接。”有時候提示“無法訪問此網(wǎng)站 連接已重置。”
請教一下,接下來應(yīng)該如何排查?
另外,我去gd查了一下dns的表格,里面有個“_acme-challenge”,但是“值”那里是空的。這個正常嗎?
@peakchao, 只要你api信息不變、crontab規(guī)則沒刪除的話就是一直自動續(xù)期
軍哥,上述步驟完成過后,怎么讓ssl支持自動續(xù)期呢?
按照你的做法成功了,不過有個疑問,怎么讓它自動域名續(xù)期呢?
@luo shijie, 沒有具體錯誤信息和日志沒法確定原因
請問軍哥阿里云的域名在digitalocean下添加ssl失敗求解?
給軍哥點贊,一直持之以恒的給社區(qū)帶來好產(chǎn)品。
@潤, 什么教程?
軍哥好。咱有操作教程嗎?