掃清微信小程序個人開發障礙之發起HTTPS請求

移動互聯網 微信 Windows 程序員 那些曾經放任的時光 2017-06-14

我們在學習一個新東西時,往往會遇到這樣那樣的障礙,讓人嘗試它的興趣減少,特別是個人用戶(不像公司那樣有各種資源),一些硬性的指標,我們不太好達到,就只能停留下來了。

就比如,你在開發微信小程序時遇到如下錯誤:

掃清微信小程序個人開發障礙之發起HTTPS請求

微信小程序提示HTTPS服務器錯誤

繼上一篇《微信小程序開發系列之Hello World》,我們可以簡單的上手了,你可以通過微信開發文檔上的組件(表單、導航、媒體組件等)來實現相對複雜的界面。

但是,我們總會說,一個不與數據庫、服務器打交道的應用(網站),是一個沒有靈魂的軀殼,花拳繡腿而已(說的也不盡然,此處這麼說,只是要側重主題,望見諒)。

我們都知道IOS已經全面要求HTTPS的請求了,Chrome也強烈趨向HTTPS的網站,這一切的表示都是好的,畢竟明文傳輸的HTTP,已經滿足不了人們對安全意識的需求了。

因此,我們在開發微信小程序時,想要獲取服務器數據,進行展示,就需要HTTPS API接口。我們先看一下官方的規定:

wx.request 發起的是HTTPS請求;

HTTPS的url中不能有端口;

HTTPS服務器的TLS版本支持1.2及以下版本。(這個很重要

wx.request使用示例:

掃清微信小程序個人開發障礙之發起HTTPS請求

微信小程序wx.request示例

通過上邊代碼,可以看出很類似jQuery的Ajax。

要解決HTTPS的問題,我們需要:

1、註冊域名、找空間

你可以到一級域名商或者代理域名商那裡去註冊個,一般一年65元左右,還是挺便宜的。

空間的話,可以找個免備案的(目前,域名接入國內空間都需要備案的,備案需要本人去)空間,比如:香港主機-ASP.NET空間,一年200元左右吧。(這裡假定你會的後臺語言是.NET)

2、申請免費的HTTPS證書

我們需要一個SSL證書(一個加密簽名的證件),來綁定到域名上,我們以IIS服務器為例如下綁定:

掃清微信小程序個人開發障礙之發起HTTPS請求

IIS為域名添加HTTPS綁定(注:此圖來自網絡)

目前大部分獲取免費證書的途徑是通過Let's Encrypt來獲得。

什麼是Let's Encrypt?

它是一個免費的,自動的,開放的證書頒發機構。每次生成的證書有限期是90天,過期前重新生成一個即可。

具體的使用方法,目前網上有很多說明,這裡就不在累述(如有需要,會另開一篇文章來介紹)。

下邊是Windows下針對IIS服務器,生成的.pfx個人證書(藉助了:ACMESharp,它表示c#版的Let's Encrypt)。

掃清微信小程序個人開發障礙之發起HTTPS請求

通過ACMESharp來生成Let's Encrypt證書

最後,需要到微信公眾平臺(小程序)上,設置合法的域名,如下所示:

掃清微信小程序個人開發障礙之發起HTTPS請求

微信公眾平臺(小程序)設置服務器域名

針對,開頭說的那個錯誤:小程序需要TLS大於等於1.2的問題,例如Windows IIS,需要註冊表開啟TLS1.2。

至此,就簡單介紹完了,難道就是獲取HTTPS證書的問題,可以買個,比較方便,作為程序員的我們,如果能通過技術方法,得到免費的證書,也不失為一件有益的事。

你在嘗試的過程中有什麼問題,也歡迎評論交流。

如果本文對你有點幫助,那麼請關注我吧,求關注,求點贊,求轉發!!!

相關推薦

推薦中...