域名备案-微信小程序接口开发-SSL免费证书部署
详细介绍如何为微信小程序配置HTTPS域名、申请阿里云SSL免费证书以及Nginx配置部署流程
前言
在开发微信小程序中使用网络相关的 API 时,需要注意下列问题:
微信小程序必须使用 HTTPS/WSS 发起网络请求。请求时系统会对服务器域名使用的 HTTPS 证书进行校验,如果校验失败,则请求不能成功发起。由于系统限制,不同平台对于证书要求的严格程度不同。为了保证小程序的兼容性,建议开发者按照最高标准进行证书配置,并使用相关工具检查现有证书是否符合要求。
证书要求
对证书要求如下:
- HTTPS 证书必须有效;证书必须被系统信任,即根证书被已系统内置
- 部署 SSL 证书的网站域名必须与证书颁发的域名一致
- 证书必须在有效期内
- 证书的信任链必需完整(需要服务器配置)
- iOS 不支持自签名证书
- iOS 下证书必须满足苹果 App Transport Security (ATS) 的要求
- TLS 必须支持 1.2 及以上版本。部分旧 Android 机型还未支持 TLS 1.2,请确保 HTTPS 服务器的 TLS 版本支持 1.2 及以下版本
- 部分 CA 可能不被操作系统信任,请开发者在选择证书时注意小程序和各系统的相关通告。Chrome 56/57 内核对 WoSign、StartCom 证书限制周知
证书验证
证书有效性可以使用以下命令验证:
bashopenssl s_client -connect example.com:443
也可以使用其他在线工具。
除了网络请求 API 外,小程序中其他 HTTPS 请求如果出现异常,也请按上述流程进行检查。如 https 的图片无法加载、音视频无法播放等。
下面的步骤就告诉你,如何把自己的服务器 IP 地址改为认证后的 HTTPS 的域名。你需要满足几个条件。
一、域名备案
我默认你已经拥有了自己的域名,那么你可以从云服务商中进行域名备案(购买域名的服务商和备案的可以不同)。
进行域名备案需要你有云服务器且服务器剩余时常大于3个月,如果不满足条件,系统无法搜索到对应资源。
二、开启阿里云 SSL 免费证书
阿里云可以自动 DNS 验证,操作步骤如下:
1. 开启 SSL 证书
点击进入域名详细,点击开启 SSL 证书。
2. 购买免费证书
点击侧栏 SSL 证书,并在右侧菜单栏选择购买免费证书。
3. 创建证书
购买之后点击创建证书,输入域名申请证书。
4. 提交审核
点击操作的证书申请,写相关的信息,点击提交审核(审核速度很快)。
5. 下载证书
申请通过后,点击下载,选择 Nginx,证书格式是 pem/key。
6. 上传证书到服务器
将压缩包解压,把得到的 pem 及 key 文件放到服务器上(我放的位置是 /etc/ssl)。
7. 配置 Nginx
重新配置你的 nginx.conf 后重启 nginx。
nginx# 后端API服务映射,通过前缀区分,并添加CORS配置
server {
listen 443 ssl;
server_name api.skywang.asia;
ssl_certificate /etc/ssl/api.skywang.asia.pem;
ssl_certificate_key /etc/ssl/api.skywang.asia.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 支持的协议
ssl_ciphers HIGH:!aNULL:!MD5; # 使用的密码套件
location / {
proxy_pass http://127.0.0.1:8001; # 代理到后端服务的8001端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 静态资源处理保持不变
location /api/uploads/ {
alias /www/wwwroot/blog_go/public/uploads/;
try_files $uri $uri/ =404;
}
# 可选:为了重定向 HTTP 到 HTTPS
# server {
# listen 80;
# server_name api.skywang.asia;
#
# return 301 https://$host$request_uri;
# }
}
三、至此完成自定义域名的配置
输入 HTTPS 的服务域名地址接口能请求,至此完成自定义域名的 HTTPS 配置。
总结
通过以上步骤,我们成功完成了:
- 域名备案流程
- 阿里云 SSL 免费证书申请
- Nginx HTTPS 配置
- 微信小程序 HTTPS 域名部署
现在你的微信小程序可以正常使用 HTTPS 接口进行网络请求了。