大家都升級了HTTPS,你竟然還不會用?來,我教你!

起因: 之前講微信小程序的課,在備課時發現微信小程序只能發送HTTPS和WebSocket網路請求,又查看了很多網上流行的各種微信小程序的教程,發現大部分都是使用假數據模擬,根本沒有發送真正的網路請求(都是些大神,為什麼不寫呢?一臉疑惑),於是小弟甘當炮灰,身先士卒,誓要為廣大前端開發者找尋出路……

(另:有對WebSocket感興趣的同學們,可以聯繫我,同樣有教程哦……)

終於,功夫不負有心人,成功的在Nginx伺服器上搭建起了HTTPS的伺服器,順利實現微信小程序發送HTTPS的網路請求,獲取後台數據;

廢話不多說,先來看看,HTTPS是啥?

HTTPS經由超文本傳輸協議(HTTP)進行通信,但利用SSL/TLS來對數據包進行加密。 HTTPS開發的主要目的,是提供對網路伺服器的身份認證,保護交換數據的隱私與完整性。這個協議由網景公司(Netscape)在1994年首次提出,隨後擴展到互聯網上。

其中尤為重要的就是,HTTPS在HTTP的基礎上加入了SSL/TLS協議,依靠SSL證書來驗證伺服器的身份,並為客戶端和伺服器端之間建立「SSL加密通道」,確保用戶數據在傳輸過程中處於加密狀態,同時防止伺服器被釣魚網站假冒。 那麼也就是說,我們要搭建HTTPS伺服器,就要先拿到 ssl 證書,而這個證書我們可以自己生成,但是,但是,但是,自己的生成的證書,是無法獲得瀏覽器信任的,自己和自己玩玩還行,一旦別人來訪問你的網站,你就和 12306 一樣了!

這可真是個悲劇啊(當然這裡這是給大家舉個栗子,12306是有原因的,噓……)

那麼,我不是12306,如果別人來訪問我的博客,突然先出來這麼個玩意,那我就真杯具了……

所以,現在的重點就是我們如何去搞到一個能讓瀏覽器信任的證書?

好,先來看看證書的種類:

DV域名型 https 證書(DVSSL):信任等級一般,只需驗證網站的真實性便可頒發證書保護網站;

OV企業型 https 證書(OVSSL):信任等級強,須要驗證企業的身份,審核嚴格,安全性更高;

EV增強型 https 證書(EVSSL):信任等級最高,一般用於銀行證券等金融機構,審核嚴格,安全性最高

一般情況下,證書都是收費的,頒發證書的機構也有不少,但是對於我們個人用戶來說,DV證書是比較合適的,當然,有免費的……

提供免費DV證書的國內比較不錯的就是七牛和騰訊,都是一年有效期,其實一年足夠了,到期後重新申請就可以了;

這裡我就在騰訊給大家做個例子,七牛也是類似:

官方網址:SSL證書 - 騰訊雲

如果我還在這裡教大家如何登錄註冊騰訊雲,那麼明顯是智商歧視,所以就不說了;

點擊申請證書按鈕,彈出選擇框,就是這個樣子的:

然後填寫相應的信息

緊接著就是讓我們選擇解析方式,我們這裡選擇手動DNS驗證

點擊確認申請後,彈出提示框,點擊查看證書詳情,跳轉到證書信息頁面

此時,騰訊會等待我們的DNS解析,打開我們的域名管理,按證書給我們的提示,在域名管理中添加CNAME解析記錄

解析完成後,一般證書就會給我頒發,一般不會超過5分鐘;

下載證書,上傳至伺服器;

註:因為我這裡之前已經安裝好Nginx,關於在Linux伺服器下如何安裝Nginx,我就不在詳細說明,只告訴大家如何配置就好了,如果你還不知道如何在Linux伺服器上安裝Nginx,你可以聯繫我,也是有教程滴……

解壓後,能得到三個文件夾,分別對應不同的伺服器 我們這裡是使用Nginx進行配置,所以我們就關注Nginx這個文件夾就好了:

至此,我們已經拿到了證書;

接下來就是配置我們的Nginx伺服器:

142 server {n143 listen 443;n144 ssl on;n145 server_name www.xiling.me;n146n147 ssl_certificate /usr/local/nginx1102/www.xiling.me/Nginx/1_www.xiling.me_bundle.crt;nn149 ssl_certificate_key /usr/local/nginx1102/www.xiling.me/Nginx/2_www.xiling.me.key;nn151n152 root /var/www/www.xiling.me;n153 index index.php index.html index.htm;n154 location ~ .php$ {n155 fastcgi_pass 127.0.0.1:9000;n156 fastcgi_index index.php;n157 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;n158 include fastcgi_params;n159 }n160 }n

再來張圖:

重新載入 Nginx 配置文件

./sbin/nginx -s reload

此時打開你的瀏覽器訪問:西嶺

就可以看到,已經是https的安全連接了;

獲取更多資料:

微信公眾號:xilinglaoshi;

今日頭條:西嶺老濕;

新浪微博:西嶺老濕;


推薦閱讀:

為什麼 12306 不買 https 證書?
為什麼要把網站升級到HTTPS
不用 https 自己實現對 http請求的內容的 rsa 加密,這樣足夠安全嗎?
HTTPS 可能被這樣劫持嗎?

TAG:HTTPS | SSL证书 | Nginx |