接上篇《騰訊雲下安裝 nodejs + 實現 Nginx 反向代理》,想從頭一步到位的同窗建議從上篇文章開始閱讀。本文將繼續介紹如何經過 Nginx 免費部署HTTPS。html
留意下,這裏的「免費」指的是HTTPS證書的獲取,至於域名仍是須要額外購買(其實域名真心很便宜了)。node
筆者在騰訊雲上購買了 vajoy.org 的域名,並根據官方指引進行了解析處理,綁定到服務器ip上(留意處理後大約10分鐘後才能ping通):nginx
接着在雲主機修改配置,執行:ubuntu
#vim /home/ubuntu/nginx/conf/nginx.conf
將 server_name 修改成「vajoy.org」vim
而後重啓 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的優化。共勉`