我们在学习一个新东西时,往往会遇到这样那样的障碍,让人尝试它的兴趣减少,特别是个人用户(不像公司那样有各种资源),一些硬性的指标,我们不太好达到,就只能停留下来了。
就比如,你在开发微信小程序时遇到如下错误:
微信小程序提示HTTPS服务器错误
继上一篇《微信小程序开发系列之Hello World》,我们可以简单的上手了,你可以通过微信开发文档上的组件(表单、导航、媒体组件等)来实现相对复杂的界面。
但是,我们总会说,一个不与数据库、服务器打交道的应用(网站),是一个没有灵魂的躯壳,花拳绣腿而已(说的也不尽然,此处这么说,只是要侧重主题,望见谅)。
我们都知道IOS已经全面要求HTTPS的请求了,Chrome也强烈趋向HTTPS的网站,这一切的表示都是好的,毕竟明文传输的HTTP,已经满足不了人们对安全意识的需求了。
因此,我们在开发微信小程序时,想要获取服务器数据,进行展示,就需要HTTPS API接口。我们先看一下官方的规定:
wx.request 发起的是HTTPS请求;
HTTPS的url中不能有端口;
HTTPS服务器的TLS版本支持1.2及以下版本。(这个很重要)
wx.request使用示例:
微信小程序wx.request示例
通过上边代码,可以看出很类似jQuery的Ajax。
要解决HTTPS的问题,我们需要:
1、注册域名、找空间
你可以到一级域名商或者代理域名商那里去注册个,一般一年65元左右,还是挺便宜的。
空间的话,可以找个免备案的(目前,域名接入国内空间都需要备案的,备案需要本人去)空间,比如:香港主机-ASP.NET空间,一年200元左右吧。(这里假定你会的后台语言是.NET)
2、申请免费的HTTPS证书
我们需要一个SSL证书(一个加密签名的证件),来绑定到域名上,我们以IIS服务器为例如下绑定:
IIS为域名添加HTTPS绑定(注:此图来自网络)
目前大部分获取免费证书的途径是通过Let’s Encrypt来获得。
什么是Let’s Encrypt?
它是一个免费的,自动的,开放的证书颁发机构。每次生成的证书有限期是90天,过期前重新生成一个即可。
具体的使用方法,目前网上有很多说明,这里就不在累述(如有需要,会另开一篇文章来介绍)。
下边是Windows下针对IIS服务器,生成的.pfx个人证书(借助了:ACMESharp,它表示c#版的Let’s Encrypt)。
通过ACMESharp来生成Let’s Encrypt证书
最后,需要到微信公众平台(小程序)上,设置合法的域名,如下所示:
微信公众平台(小程序)设置服务器域名
针对,开头说的那个错误:小程序需要TLS大于等于1.2的问题,例如Windows IIS,需要注册表开启TLS1.2。
至此,就简单介绍完了,难道就是获取HTTPS证书的问题,可以买个,比较方便,作为程序员的我们,如果能通过技术方法,得到免费的证书,也不失为一件有益的事。
你在尝试的过程中有什么问题,也欢迎评论交流。
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com