This commit is contained in:
2026-01-28 17:28:38 +08:00
parent b6740d2678
commit 77a891e636
3 changed files with 1182 additions and 0 deletions

View File

@@ -0,0 +1,255 @@
# 小程序域名配置问题解决方案
**问题时间:** 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. **登录微信公众平台**
- 访问https://mp.weixin.qq.com
- 登录您的小程序账号
2. **进入开发设置**
- 左侧菜单:**开发** → **开发管理****开发设置**
- 找到 **"服务器域名"** 部分
3. **添加域名**
- 点击 **"修改"** 按钮
-**"request合法域名"** 中添加:
```
https://www.ruilaizipj.com
```
- 同时检查 **"uploadFile合法域名"** 和 **"downloadFile合法域名"**,也添加:
```
https://www.ruilaizipj.com
```
- 点击 **"保存"** 或 **"提交"**
4. **重新编译小程序**
- 在微信开发者工具中重新编译
- 清除缓存后测试
**优点:**
- ✅ 不需要修改代码
- ✅ 使用带www的域名更规范
- ✅ 证书已配置好,直接可用
---
### 方案二修改代码使用不带www的域名
**操作步骤:**
1. **修改小程序代码**
- 打开 `app.js`
- 将 `globalData.url` 改为:
```javascript
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` 中确认:
```javascript
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日
**问题状态:** 待解决 - 需要在微信小程序后台添加域名