Files
code/小程序域名配置问题解决方案.md
2026-01-28 17:28:38 +08:00

6.1 KiB
Raw Blame History

小程序域名配置问题解决方案

问题时间: 2025年1月28日
问题描述: 取消"不校验合法域名"后,小程序无法访问接口


一、问题诊断

错误信息

request 合法域名校验出错
https://www.ruilaizipj.com 不在以下 request 合法域名列表中

允许的域名列表:

  • https://mp.weixin.qq.com
  • https://ruilaizipj.com不带www
  • https://tcb-api.tencentcloudapi.com

根本原因

  1. 代码使用的域名: https://www.ruilaizipj.com/带www
  2. 白名单中的域名: https://ruilaizipj.com不带www
  3. 域名不匹配:微信小程序严格校验域名,必须完全一致

二、解决方案

方案一在微信小程序后台添加带www的域名推荐

操作步骤:

  1. 登录微信公众平台

  2. 进入开发设置

    • 左侧菜单:开发开发管理开发设置
    • 找到 "服务器域名" 部分
  3. 添加域名

    • 点击 "修改" 按钮
    • "request合法域名" 中添加:
      https://www.ruilaizipj.com
      
    • 同时检查 "uploadFile合法域名""downloadFile合法域名",也添加:
      https://www.ruilaizipj.com
      
    • 点击 "保存""提交"
  4. 重新编译小程序

    • 在微信开发者工具中重新编译
    • 清除缓存后测试

优点:

  • 不需要修改代码
  • 使用带www的域名更规范
  • 证书已配置好,直接可用

方案二修改代码使用不带www的域名

操作步骤:

  1. 修改小程序代码

    • 打开 app.js
    • globalData.url 改为:
      url: 'https://ruilaizipj.com/'
      
  2. 配置根域名SSL证书

    • 需要为 ruilaizipj.com 申请SSL证书
    • 或在现有证书中添加根域名SAN扩展
  3. 修改Nginx配置

    • server_name 中添加 ruilaizipj.com
    • 确保证书支持根域名

缺点:

  • 需要修改代码
  • 需要重新申请/配置SSL证书
  • 根域名证书配置较复杂

三、当前服务器配置状态

SSL证书状态

  • 证书域名: www.ruilaizipj.com
  • 根域名支持: ruilaizipj.com (证书不包含)
  • 证书有效期: 2026-01-28 至 2026-04-28

Nginx配置状态

  • server_name www.ruilaizipj.com 101.43.95.130(已添加 ruilaizipj.com
  • SSL证书路径 /www/server/panel/vhost/cert/101.43.95.130/
  • HTTPS访问 www.ruilaizipj.com 正常

域名访问测试

  • https://www.ruilaizipj.com 正常200 OK
  • https://ruilaizipj.com 证书不匹配(需要配置根域名证书)

四、推荐操作

立即执行(方案一)

  1. 在微信小程序后台添加域名:

    https://www.ruilaizipj.com
    

    添加到以下列表:

    • request合法域名
    • uploadFile合法域名
    • downloadFile合法域名
  2. 保存配置

  3. 在微信开发者工具中:

    • 清除缓存
    • 重新编译
    • 测试接口访问

如果方案一不行,再考虑方案二

如果添加域名后仍有问题,可以:

  1. 申请包含根域名的SSL证书或使用通配符证书
  2. 修改代码使用根域名
  3. 配置Nginx支持根域名

五、注意事项

1. 域名必须完全一致

  • 正确:https://www.ruilaizipj.com
  • 错误:https://www.ruilaizipj.com/(末尾有斜杠,但通常不影响)
  • 错误:http://www.ruilaizipj.com必须是HTTPS

2. 白名单修改限制

  • 每月可修改次数有限您当前还可修改49次
  • 修改后需要保存并重新编译小程序

3. 开发环境 vs 生产环境

  • 开发环境:可以勾选"不校验合法域名"进行调试
  • 生产环境:必须配置白名单,否则无法访问

4. 证书要求

  • 必须是HTTPSHTTP不支持
  • 证书必须有效且未过期
  • 证书域名必须与请求域名匹配

六、验证步骤

1. 检查白名单配置

在微信小程序后台确认:

  • https://www.ruilaizipj.com 已在 request合法域名 列表中
  • https://www.ruilaizipj.com 已在 uploadFile合法域名 列表中
  • https://www.ruilaizipj.com 已在 downloadFile合法域名 列表中

2. 检查代码配置

app.js 中确认:

globalData: {
  url: 'https://www.ruilaizipj.com/'  // 与白名单域名一致
}

3. 测试访问

在微信开发者工具中:

  1. 取消勾选"不校验合法域名"
  2. 清除缓存
  3. 重新编译
  4. 测试接口调用
  5. 查看Console是否有错误

七、常见问题

Q1: 添加域名后仍然报错?

可能原因:

  • 白名单未保存
  • 小程序未重新编译
  • 缓存未清除

解决方法:

  1. 确认白名单已保存
  2. 在开发者工具中清除缓存
  3. 重新编译小程序

Q2: 为什么需要两个域名都加?

原因:

  • 如果代码中可能使用不同的域名
  • 或者有重定向情况
  • 为了确保兼容性

建议:

  • 统一使用一个域名(推荐 www.ruilaizipj.com
  • 在代码和白名单中都使用相同的域名

Q3: 证书不匹配怎么办?

如果使用根域名 ruilaizipj.com

  1. 申请包含根域名的证书(或通配符证书 *.ruilaizipj.com
  2. 在Nginx中配置根域名的SSL证书
  3. 确保证书的SAN包含 ruilaizipj.com

八、总结

问题根源

代码使用的域名与白名单域名不一致:

  • 代码:https://www.ruilaizipj.com/带www
  • 白名单:https://ruilaizipj.com不带www

推荐解决方案

在微信小程序后台添加 https://www.ruilaizipj.com 到白名单

操作步骤

  1. 登录微信公众平台
  2. 进入开发设置 → 服务器域名
  3. 添加 https://www.ruilaizipj.com 到所有相关域名列表
  4. 保存配置
  5. 重新编译小程序

创建时间: 2025年1月28日
问题状态: 待解决 - 需要在微信小程序后台添加域名