Let's Encrypt免費證書我想大家應該不陌生了; 最近幾年的免費證書,基本上都是Let's Encrypt和Symantec的免費證書,被拉黑的其它免費證書就不談了; 賽門鐵克(Symantec)的免費證書代理發(fā)布在服務運營商手中,所以大家都需要去單獨填表申請,還要手動設置dns(阿里云賬號一體的可以自動設置)。不過流程并不算復雜,基本上一天內(nèi)都能拿到證書。 Let's Encrypt的免費證書,是按照安全規(guī)范,每次簽發(fā)有效期為三個月的證書;這兩年的工具云集,而大家手上常用的,基本上就是和certbot了。 我的博客一直是用Let's Encrypt證書,早期使用初期版本,各種折騰;后來發(fā)現(xiàn)了更加快捷方便的certbot;至于證書的更新,基本上都是手動renew...雖然可以設置定時任務,但使用域名+ip的驗證方法,需要停443端口的占用;使用DNS的方法,DNS的TXT記錄有可能會出現(xiàn)更新。。。真是煩躁;后來也懶得去折騰其它的自動更新證書方案; 早在去年就聽說Let's Encrypt會在2018年推出通配符證書,就一直在等今年推出新的方案以后,把證書更新的方案改了。 什么是通配符證書? 話題就要說到,Let's Encrypt證書和其它免費證書的區(qū)別。 例如賽門鐵克的免費證書是單域名證書,就是只能申請一個主機域名;附贈www的主機名,例如申請domain.com的證書,會有備用的www.domain.com;如果abc.domain.com域名使用這個證書,就會導致簽名驗證失敗,瀏覽器不能正常訪問網(wǎng)站。 而Let's Encrypt的免費證書是多域名證書,只需要在申請時,將想要一起簽名的域名設置到配置中即可。 而通配符證書,我們只需要設置一個*.domain.com域名,那么之后的a.domain.com,b.domain.com等等,都可以使用這個證書進行加密; 回到文章想說的話題,其實在通配符證書上線前,已經(jīng)推出了基于DNS服務器API,自動更新DNS記錄和自動更新證書的方案。但我沒有去折騰,直到最近才看到lnmp一鍵包推出了自動更新通配符證書的方案,我才開始準備折騰。 關(guān)于lnmp一鍵包的自動更新方案是屬于lnmp一鍵包環(huán)境下的,所以我這里不細談這個折騰的過程,因為lnmp的集成,這個操作韓式蠻簡單的。戳這里查看相關(guān)教程 因為有一些環(huán)境,我并沒有采用lnmp一鍵包,所以我根據(jù)教程中提到的,折騰了一下。 PS:我的運行環(huán)境是ubuntu 16.04,不代表大家都是一樣的效果。 官方中文文檔:https://github.com/Neilpang//wiki/說明 第一步,下載腳本;
安裝腳本時會出現(xiàn)個別情況,例如提示openssl沒有安裝,執(zhí)行相關(guān)語句安裝即可;例如apt install openssl 進入下載的腳本文件夾,按照官方中文文檔的提示,我們創(chuàng)建一個bash命令的別名;
第二步,生成證書; 在生成證書前,設置對應dns服務商的api授權(quán)配置; 可以在這個鏈接查找對應的dns服務商:https://github.com/Neilpang//tree/master/dnsapi 例如,我是阿里云的dns,先在bash里面通過export設置;
其中的xxx自行替換成對應的內(nèi)容。
如果key和secret沒有問題,就會執(zhí)行一個120秒的等待生效時間。 申請成功示意圖 第三步,安裝證書; 基于的開發(fā)規(guī)劃,默認生成的證書是可能會出現(xiàn)目錄結(jié)構(gòu)變化的,所以需要將證書自動安裝到對應文件夾。 目錄的設計根據(jù)自己的需求來確定,提供的腳本沒有自動mkdir,需要手動創(chuàng)建出對應目錄。
最后的reloadcmd里面,service nginx reload在我版本中是可以生效的,部分版本需要使用service nginx force-reload;大家配完證書自己測試,按需使用; 第四步,部署證書; 證書的部署,根據(jù)不同的web服務器,有不同配置方法; 我給一個nginx的證書配置例子,沒有加入HSTS的,安全評級在A的樣子。
配置僅供參考,不代表運行就可以使用,是否采用反向代理,根據(jù)自己的情況定奪。 |
|
來自: 文檔客 > 《網(wǎng)站憑證》