在腾讯云部署免费 SSL 证书以支持微信小程序,需要遵循微信对域名白名单和HTTPS 强制加密的严格规定。以下是完整的操作流程和关键注意事项:
一、核心前提确认
- 域名备案:小程序后端服务器域名必须已完成 ICP 备案(非备案域名无法通过微信审核)。
- 证书类型选择:微信小程序仅支持 DV 型(域名验证)单域名证书,不支持通配符证书(*.example.com)或泛域名证书。
- 证书有效期:免费证书有效期通常为 1 年,需提前规划续期。
二、申请免费 SSL 证书步骤(腾讯云控制台)
- 登录 腾讯云 SSL 证书控制台
- 点击「购买/管理」→「申请免费证书」
- 填写信息:
- 域名:输入你的小程序后端域名(如
api.yourdomain.com) - 组织信息:个人/企业均可,但需与备案主体一致
- 验证方式:选择 DNS 验证(推荐,无需修改网站配置)
- 域名:输入你的小程序后端域名(如
- 完成 DNS 记录添加后自动签发证书
- 下载证书文件(
.crt+.key)及中间证书链(.ca-bundle)
⚠️ 注意:下载时务必选择 Nginx/Apache 格式(包含私钥),而非仅公钥格式。
三、部署到服务器(以 Nginx 为例)
将下载的证书文件上传至服务器指定目录(如 /etc/nginx/ssl/),修改 Nginx 配置:
server {
listen 443 ssl;
server_name api.yourdomain.com;
# 证书路径
ssl_certificate /etc/nginx/ssl/api.yourdomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/api.yourdomain.com.key;
# 安全配置(微信要求)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8080; # 你的后端服务地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# 强制 HTTP 跳转 HTTPS
server {
listen 80;
server_name api.yourdomain.com;
return 301 https://$server_name$request_uri;
}
重启 Nginx:
sudo nginx -t && sudo systemctl reload nginx
四、微信小程序后台配置
- 登录 微信公众平台
- 进入 开发 → 开发设置 → 服务器域名
- 在 request 合法域名 中添加你的 HTTPS 域名(如
https://api.yourdomain.com)
✅ 必须带
https://前缀,且不能包含端口号 - 提交后等待微信审核(通常 1-2 小时)
五、关键注意事项
| 问题 | 解决方案 |
|---|---|
| 证书过期 | 设置定时任务(如 cron)每月检查,腾讯云控制台提供自动续期提醒 |
| 混合内容警告 | 确保前端页面所有资源(图片/API)均使用 https:// 协议 |
| 证书不匹配 | 检查域名是否完全一致(www. 和 非 www. 视为不同域名) |
| iOS 兼容性问题 | 优先使用 TLSv1.2+,避免旧版 cipher suites |
六、验证部署成功
- 访问
https://api.yourdomain.com检查浏览器锁标志 - 使用工具测试:SSL Labs
- 在小程序中调用接口,观察是否出现“网络错误”提示
💡 提示:若遇到证书信任问题,可尝试在微信开发者工具中开启「允许调试」→「忽略 HTTPS 错误」(仅限开发环境,生产环境严禁使用)。
按照以上步骤操作后,即可实现小程序与后端服务的 HTTPS 安全通信。如有具体报错,可提供错误截图进一步分析。
云知识CLOUD