400-080-0149

微信小程序开发实现服务器端HTTPS请求

微信小程序开发是有诸多限制的,例如文件大小、请求服务端必须是HTTPS等等。实现服务器端HTTPS请求,需要通过在服务器端配置SSL证书来实现。

开发危险小程序的第一步,你需要拥有一个小程序帐号,通过这个帐号你就可以管理你的小程序。

申请帐号

点击 https://mp.weixin.qq.com/wxopen/waregister?action=step1 根据指引填写信息和提交相应的资料,就可以拥有自己的小程序帐号。

微信小程序开发实现服务器端HTTPS请求

在这个小程序管理平台,你可以管理你的小程序的权限,查看数据报表,发布小程序等操作。

登录 https://mp.weixin.qq.com ,我们可以在菜单 “设置”-“开发设置” 看到小程序的 AppID 了 。

微信小程序开发实现服务器端HTTPS请求

小程序的 AppID 相当于小程序平台的一个身份证,后续你会在很多地方要用到 AppID (注意这里要区别于服务号或订阅号的 AppID)。

在设置-开发设置里,我们可以看到,微信小程序要求接入的域名必须要通过https协议访问,否则无法接入微信小程序。

那么我们该如何实现服务器端HTTPS请求呢?通过查阅微信小程序开发者文档我们可以找到以下两个方面的内容:

1.服务器域名配置

每个微信小程序需要事先设置一个通讯域名,小程序只可以跟指定的域名与进行网络通信。包括普通 HTTPS 请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile) 和 WebSocket 通信(wx.connectSocket)

配置SSL证书流程:

服务器域名请在 「小程序后台-设置-开发设置-服务器域名」 中进行配置,配置时需要注意:

1、域名只支持 https (wx.request、wx.uploadFile、wx.downloadFile) 和 wss (wx.connectSocket) 协议;

2、域名不能使用 IP 地址或 localhost;

3、可以配置端口,如 https://myserver.com:8080,但是配置后只能向 https://myserver.com:8080 发起请求。如果向 https://myserver.com、https://myserver.com:9091 等 URL 请求则会失败。

4、如果不配置端口。如 https://myserver.com,那么请求的 URL 中也不能包含端口,甚至是默认的 443 端口也不可以。如果向 https://myserver.com:443 请求则会失败。

5、域名必须经过 ICP 备案;

6、出于安全考虑,api.weixin.qq.com 不能被配置为服务器域名,相关API也不能在小程序内调用。 开发者应将 AppSecret 保存到后台服务器中,通过服务器使用 getAccessToken 接口获取 access_token,并调用相关 API;

7、对于每个接口,分别可以配置最多 20 个域名。

2.HTTPS 证书

小程序必须使用 HTTPS 请求。小程序内会对服务器域名使用的 HTTPS 证书进行校验,如果校验失败,则请求不能成功发起。由于系统限制,不同平台对于证书要求的严格程度不同。为了保证小程序的兼容性,建议开发者按照最高标准进行证书配置,并使用相关工具检查现有证书是否符合要求。

对证书要求如下:

1、HTTPS 证书必须有效。证书必须被系统信任,部署SSL证书的网站域名必须与证书颁发的域名一致,证书必须在有效期内;

2、iOS 不支持自签名证书;

3、iOS 下证书必须满足苹果 App Transport Security (ATS) 的要求;

4、TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持1.2及以下版本;

5、部分 CA 可能不被操作系统信任,请开发者在选择证书时注意小程序和各系统的相关通告。

了解了开发者文档里面的关于小程序配置https的规定,那我们如何选择一个合适的SSL证书进行配置呢?

由于微信只要求客户的域名必须通过https访问,却没有规定具体使用什么样的SSL证书。市场上有各种品牌和各个类型的SSL证书,究竟该如何选择呢?

一般来说,小程序的SSL证书只需要DV(域名验证型)证书即可。普通的DV SSL证书只需要一两百块钱一年,对于小程序来说还是很实惠的。

从安信SSL证书官网上选择一款DV SSL证书,付款后只需要验证域名所有权,即可签发证书,时间不会超过10分钟,签发速度超快的。然后把签发下来的SSL证书安装到你的网站(小程序)所在服务器上就可以了。

相关文章

LAYOUT

SAMPLE COLOR

Please read our documentation file to know how to change colors as you want

BACKGROUND COLOR

BACKGROUND TEXTURE