接上篇《騰訊云下安裝 nodejs + 實現 Nginx 反向代理》,想從頭一步到位的同學建議從上篇文章開始閱讀。本文將繼續介紹如何通過 Nginx 免費部署HTTPS。
留意下,這里的“免費”指的是HTTPS證書的獲取,至于域名還是需要額外購買(其實域名真心很便宜了)。
筆者在騰訊云上購買了 vajoy.org 的域名,并根據官方指引進行了解析處理,綁定到服務器ip上(留意處理后大約10分鐘后才能ping通):
接著在云主機修改配置,執行:
#vim /home/ubuntu/nginx/conf/nginx.conf
將 server_name 修改為“vajoy.org”
然后重啟 Nginx 服務:
#/home/ubuntu/nginx/sbin/nginx -s reload
這時咱們直接用瀏覽器訪問 http://vajoy.org 就能正常訪問了,只不過是 HTTP 協議形式:
免費獲取HTTPS證書
事實上騰訊云本身支持申請免費的SSL證書,不過其僅支持單個非一級域名:
另外為了方便非騰訊云用戶也可以做參考,這里我們通過 https://startssl.com/ 來申請免費的SSL證書。
咱們先在 startssl 上進行注冊,然后選擇申請免費的證書:
如其描述所示,該證書時限為3年,支持10個域名,但僅提供到 Class 1 級別的證書。這里簡單科普下證書級別概念:
Class 4 SSL證書:即EV SSL證書,頂級SSL證書,又稱擴展驗證型SSL證書。安全級別最高,驗證審核最嚴格,網站部署EV SSL證書后,瀏覽器地址欄將變成綠色并顯示企業名稱。EV SSL證書一般應用于金融、銀行、電商等安全需求較高的網站。
Class 3 SSL證書:即OV SSL證書,專業級SSL證書,又稱機構驗證型SSL證書。當前廣泛應用的SSL證書,需要驗證企業身份信息后頒發。OV SSL證書是當前最常見的證書類型,適用于行政、企業、科研、郵箱、論壇等各類大中型網站。
Class 2 SSL證書:即IV SSL證書,個人級SSL證書,沃通特有的SSL證書,又稱個人驗證型SSL證書。驗證個人詳細信息后頒發,主要應用于私人博客、自媒體等個人網站。
Class 1 SSL證書:即DV SSL證書,基礎級SSL證書,又稱域名驗證型SSL證書。DV SSL證書是簽發只驗證域名所有權,任何人都可以申請,屬于快速頒發的SSL證書,安全級別較低。
目前來說,Class 1 SSL 證書對咱是夠用了。
接著 startssl 會指引我們對 SSL 證書進行域名認證:
點擊“Finish”鏈接,再選擇“Domain Validation”,會進入域名驗證頁面:
這里要求通過域名郵箱來接收驗證碼。不過截止咱還沒有任何郵箱服務。
怎么辦呢?不用慌,通過騰訊企業郵是可以進行免費申請的,登錄其申請頁面點擊申請免費版即可。
申請的過程中會提供你域名MX記錄的配置信息:
我們返回騰訊云管理后臺的域名解析頁面,新增對應記錄即可:
接著回到騰訊企業郵管理后臺,添加 startssl 要發送驗證碼的郵箱賬戶:
再用這個郵箱(hostmaster@vajoy.org)作為帳戶名登錄騰訊企業郵即可:
順便吐槽下,企業郵這么方便的產品,騰訊云整個站點都沒找到傳送門,這點建議改進了。
回到 startssl,這下可以安心發送域名驗證的驗證碼到咱郵箱(hostmaster@vajoy.org)了。
初步驗證完成后,咱們再點擊“Certificates Wizard”:
如上圖,這里有兩處需要填寫,一處是證書的 common name,這里我填寫的“vajoy.org”,如果你還希望該證書支持其它域名(如“a.vajoy.org”),可以換行加上(一個只能加10個域名)。
另外是需要在服務器上生成的CSR(證書請求文件)內容。
我們在云主機上(/home/ubuntu)執行指令(指令格式參考上圖 startssl 頁面紅字部分):
openssl req -newkey rsa:2048 -keyout vajoy.org_ssl.key -out vajoy.org.csr
期間會要求輸入機構名稱、地址、email等信息,且最終會生成兩個文件(證書簽名請求文件和私鑰):
通過 cat 指令獲取到 CSR 文件內容后把它粘貼到 startssl 頁面。提交后會引導你下載證書:
點擊“here”直接下載證書壓縮包,打開后里面有各種服務器支持格式的證書,這里咱們選 NginxServer.zip,解壓它可得到“vajoy.org_bundle.crt”文件。
把下載到的這個“vajoy.org_bundle.crt”證書上傳到咱服務器去(我通過 FileZilla 上傳服務器,放到 /home/ubuntu)。
接著就是修改 nginx 的配置啦。這里特別推薦到 https://cipherli.st/ 去獲取最安全的配置內容。
我們給 nginx.conf 加上紅框部分的內容(跟進 https://cipherli.st/ 上的配置來修改的):
然后執行指令判斷 nginx 配置是否正確:
#/home/ubuntu/nginx/sbin/nginx -t
注意這里可能還會讓你輸入一次 PEM 密碼,直接輸入之前生成 .csr 時填寫的安全密碼即可。
最后我們再重啟下 nginx 服務,再訪問 https://vajoy.org 會發現HTTPS已經妥妥的生效了:
后續可能還會再講講這次 nginx.conf 上新增的內容的含義,以及一些針對HTTPS的優化。共勉`
文章列表