起因: 之前講微信小程序的課,在備課時(shí)發(fā)現(xiàn)微信小程序只能發(fā)送HTTPS和WebSocket網(wǎng)絡(luò)請(qǐng)求,又查看了很多網(wǎng)上流行的各種微信小程序的教程,發(fā)現(xiàn)大部分都是使用假數(shù)據(jù)模擬,根本沒(méi)有發(fā)送真正的網(wǎng)絡(luò)請(qǐng)求(都是些大神,為什么不寫(xiě)呢?一臉疑惑),于是小弟甘當(dāng)炮灰,身先士卒,誓要為廣大前端開(kāi)發(fā)者找尋出路……
(另:有對(duì)WebSocket感興趣的同學(xué)們,可以聯(lián)系我,同樣有教程哦……)
終于,功夫不負(fù)有心人,成功的在Nginx服務(wù)器上搭建起了HTTPS的服務(wù)器,順利實(shí)現(xiàn)微信小程序發(fā)送HTTPS的網(wǎng)絡(luò)請(qǐng)求,獲取后臺(tái)數(shù)據(jù);
廢話(huà)不多說(shuō),先來(lái)看看,HTTPS是啥?
HTTPS經(jīng)由超文本傳輸協(xié)議(HTTP)進(jìn)行通信,但利用SSL/TLS來(lái)對(duì)數(shù)據(jù)包進(jìn)行加密。 HTTPS開(kāi)發(fā)的主要目的,是提供對(duì)網(wǎng)絡(luò)服務(wù)器的身份認(rèn)證,保護(hù)交換數(shù)據(jù)的隱私與完整性。這個(gè)協(xié)議由網(wǎng)景公司(Netscape)在1994年首次提出,隨后擴(kuò)展到互聯(lián)網(wǎng)上。
其中尤為重要的就是,HTTPS在HTTP的基礎(chǔ)上加入了SSL/TLS協(xié)議,依靠SSL證書(shū)來(lái)驗(yàn)證服務(wù)器的身份,并為客戶(hù)端和服務(wù)器端之間建立“SSL加密通道”,確保用戶(hù)數(shù)據(jù)在傳輸過(guò)程中處于加密狀態(tài),同時(shí)防止服務(wù)器被釣魚(yú)網(wǎng)站假冒。 那么也就是說(shuō),我們要搭建HTTPS服務(wù)器,就要先拿到 ssl 證書(shū),而這個(gè)證書(shū)我們可以自己生成,但是,但是,但是,自己的生成的證書(shū),是無(wú)法獲得瀏覽器信任的,自己和自己玩玩還行,一旦別人來(lái)訪問(wèn)你的網(wǎng)站,你就和 12306 一樣了!
這可真是個(gè)悲劇啊(當(dāng)然這里這是給大家舉個(gè)栗子,12306是有原因的,噓……)
那么,我不是12306,如果別人來(lái)訪問(wèn)我的博客,突然先出來(lái)這么個(gè)玩意,那我就真杯具了……
所以,現(xiàn)在的重點(diǎn)就是我們?nèi)绾稳ジ愕揭粋€(gè)能讓瀏覽器信任的證書(shū)?
好,先來(lái)看看證書(shū)的種類(lèi):
DV域名型 https 證書(shū)(DVSSL):信任等級(jí)一般,只需驗(yàn)證網(wǎng)站的真實(shí)性便可頒發(fā)證書(shū)保護(hù)網(wǎng)站;
OV企業(yè)型 https 證書(shū)(OVSSL):信任等級(jí)強(qiáng),須要驗(yàn)證企業(yè)的身份,審核嚴(yán)格,安全性更高;
EV增強(qiáng)型 https 證書(shū)(EVSSL):信任等級(jí)最高,一般用于銀行證券等金融機(jī)構(gòu),審核嚴(yán)格,安全性最高
一般情況下,證書(shū)都是收費(fèi)的,頒發(fā)證書(shū)的機(jī)構(gòu)也有不少,但是對(duì)于我們個(gè)人用戶(hù)來(lái)說(shuō),DV證書(shū)是比較合適的,當(dāng)然,有免費(fèi)的……
提供免費(fèi)DV證書(shū)的國(guó)內(nèi)比較不錯(cuò)的就是七牛和騰訊,都是一年有效期,其實(shí)一年足夠了,到期后重新申請(qǐng)就可以了;
這里我就在騰訊給大家做個(gè)例子,七牛也是類(lèi)似:
官方網(wǎng)址:SSL證書(shū) - 騰訊云
如果我還在這里教大家如何登錄注冊(cè)騰訊云,那么明顯是智商歧視,所以就不說(shuō)了;
點(diǎn)擊申請(qǐng)證書(shū)按鈕,彈出選擇框,就是這個(gè)樣子的:
然后填寫(xiě)相應(yīng)的信息
緊接著就是讓我們選擇解析方式,我們這里選擇手動(dòng)DNS驗(yàn)證
點(diǎn)擊確認(rèn)申請(qǐng)后,彈出提示框,點(diǎn)擊查看證書(shū)詳情,跳轉(zhuǎn)到證書(shū)信息頁(yè)面
此時(shí),騰訊會(huì)等待我們的DNS解析,打開(kāi)我們的域名管理,按證書(shū)給我們的提示,在域名管理中添加CNAME解析記錄
解析完成后,一般證書(shū)就會(huì)給我頒發(fā),一般不會(huì)超過(guò)5分鐘;
下載證書(shū),上傳至服務(wù)器;
注:因?yàn)槲疫@里之前已經(jīng)安裝好Nginx,關(guān)于在Linux服務(wù)器下如何安裝Nginx,我就不在詳細(xì)說(shuō)明,只告訴大家如何配置就好了,如果你還不知道如何在Linux服務(wù)器上安裝Nginx,你可以聯(lián)系我,也是有教程滴……
解壓后,能得到三個(gè)文件夾,分別對(duì)應(yīng)不同的服務(wù)器 我們這里是使用Nginx進(jìn)行配置,所以我們就關(guān)注Nginx這個(gè)文件夾就好了:
至此,我們已經(jīng)拿到了證書(shū);
接下來(lái)就是配置我們的Nginx服務(wù)器:
142 server {
143 listen 443;
144 ssl on;
145 server_name www.xiling.me;
146
147 ssl_certificate /usr/local/nginx1102/www.xiling.me/Nginx/1_www.xiling.me_bundle.crt;
149 ssl_certificate_key /usr/local/nginx1102/www.xiling.me/Nginx/2_www.xiling.me.key;
151
152 root /var/www/www.xiling.me;
153 index index.php index.html index.htm;
154 location ~ \.php$ {
155 fastcgi_pass 127.0.0.1:9000;
156 fastcgi_index index.php;
157 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
158 include fastcgi_params;
159 }
160 }
再來(lái)張圖:
重新加載 Nginx 配置文件
./sbin/nginx -s reload
此時(shí)打開(kāi)你的瀏覽器訪問(wèn):https://www.xiling.me
就可以看到,已經(jīng)是https的安全連接了;
獲取更多資料:
微信公眾號(hào):xilinglaoshi;
知乎專(zhuān)欄:西嶺老濕;
今日頭條:西嶺老濕;
新浪微博:西嶺老濕;