在京东云(JD Cloud)上配置服务器以对接微信小程序,需完成 域名解析 + Web 服务部署 + HTTPS 证书配置 + 微信小程序合法域名备案与配置 四大关键步骤。以下是详细、可落地的操作指南(以京东云轻量应用服务器或云主机为例,推荐使用轻量应用服务器,操作更简单):
✅ 一、前提条件确认
- 已实名认证的京东云账号(微信小程序要求主体一致)
- 已备案的域名(中国大陆境内访问必须!微信小程序后台仅接受已备案的域名)
- 域名需在京东云或工信部认可的注册商处完成 ICP 备案(个人/企业备案均可,但需与小程序主体一致)
- 微信小程序已注册并完成主体认证(小程序后台 → 开发管理 → 开发者工具 → 服务器域名配置)
- 京东云服务器已创建并运行 Linux(推荐 CentOS 7+/Ubuntu 20.04+)
✅ 二、京东云服务器基础配置
1. 安全组放行必要端口
| 进入【控制台】→【云服务器】→【安全组】→ 编辑规则,添加: | 方向 | 协议 | 端口范围 | 授权对象 |
|---|---|---|---|---|
| 入方向 | TCP | 80(HTTP) |
0.0.0.0/0 |
|
| 入方向 | TCP | 443(HTTPS) |
0.0.0.0/0 |
|
| 入方向 | TCP | 3000/8080(如自定义端口) |
0.0.0.0/0(按需) |
⚠️ 注意:微信小程序只允许
https://协议,http://和localhost均被禁止。
✅ 三、绑定域名 & 部署 Web 服务
方法 A:使用京东云「轻量应用服务器」+ 内置 Nginx(推荐新手)
- 创建轻量应用服务器时选择「Nginx + PHP」或「Nginx + Node.js」镜像
-
登录服务器,修改 Nginx 配置绑定域名:
# 编辑默认站点配置(路径可能为 /etc/nginx/conf.d/default.conf 或 /etc/nginx/sites-enabled/default) sudo vi /etc/nginx/conf.d/default.conf添加以下 server 块(替换
your-domain.com):server { listen 80; server_name your-domain.com www.your-domain.com; # 重定向 HTTP → HTTPS(后续启用 HTTPS 后开启) return 301 https://$server_name$request_uri; }
方法 B:自建 Node.js/Python/Java 服务(如 Express/Koa/Flask/Spring Boot)
-
确保服务监听
0.0.0.0:3000(非 127.0.0.1),并用 Nginx 反向:server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } - 重启 Nginx:
sudo systemctl restart nginx
✅ 测试:浏览器访问 http://your-domain.com,应能打开页面(先不急 HTTPS)
✅ 四、申请并配置 HTTPS(免费 SSL 证书)
京东云提供 免费 DV 证书(Let’s Encrypt),支持自动续期:
✅ 推荐方式:使用京东云「SSL 证书服务」+「Nginx 一键部署」
- 进入【控制台】→【安全】→【SSL 证书】→【申请证书】
- 选择「免费型 DV SSL」(有效期 3 个月,支持自动续签)
- 域名填写:
your-domain.com(如需 www,填www.your-domain.com或勾选「通配符」)
- DNS 验证(最快,推荐):
- 按提示添加一条 TXT 记录到你的域名 DNS(在京东云【云解析 DNS】中操作)
- 等待 1–10 分钟,点击「验证」→「颁发」
- 颁发成功后,点击证书右侧【部署】→ 选择「Nginx」→ 下载证书包(含
.crt和.key)
🔧 配置 Nginx 启用 HTTPS
# 上传证书到服务器(如 /etc/nginx/ssl/your-domain.com/)
sudo mkdir -p /etc/nginx/ssl/your-domain.com
# 将下载的 xxx.crt 和 xxx.key 上传至此目录(可用 scp 或 SFTP)
# 编辑 Nginx 配置,新增 HTTPS server 块:
sudo vi /etc/nginx/conf.d/default.conf
server {
listen 443 ssl http2;
server_name your-domain.com www.your-domain.com;
ssl_certificate /etc/nginx/ssl/your-domain.com/1_your-domain.com_bundle.crt;
ssl_certificate_key /etc/nginx/ssl/your-domain.com/2_your-domain.com.key;
# 推荐安全配置(京东云控制台可一键获取最佳实践)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 到后端(Node.js 示例)
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 强制 HTTP 跳转 HTTPS(确保上面的 80 端口 server 块保留 return 301)
server {
listen 80;
server_name your-domain.com www.your-domain.com;
return 301 https://$server_name$request_uri;
}
✅ 重启 Nginx:
sudo nginx -t && sudo systemctl restart nginx
✅ 测试:浏览器访问 https://your-domain.com → 显示锁图标 ✅
✅ 五、微信小程序后台配置「合法域名」
-
登录 微信公众平台 → 小程序管理后台
-
左侧菜单:开发管理 → 开发设置 → 服务器域名
-
在 request 合法域名 中添加(必须是 HTTPS):
https://your-domain.com✅ 支持子域名(如
https://api.your-domain.com),但每个域名需单独添加
❌ 不支持 IP、http://、localhost、127.0.0.1、通配符(如https://*.your-domain.com) -
(可选)如需 WebSocket,还需在 socket 合法域名 中添加
wss://your-domain.com -
✅ 保存 → 提交审核后生效(无需重新发布小程序,但需开发者工具重新编译)
📌 重要提醒:
- 修改后需清除微信开发者工具缓存(详情 → 本地设置 → 清除缓存)
- 真机调试前,确保手机网络可访问
https://your-domain.com(无证书错误)- 使用
wx.request()时,URL 必须以https://开头,且与上述域名完全一致(包括大小写、路径前缀)
✅ 六、验证与排错清单
| 问题 | 检查项 |
|---|---|
❌ request:fail net::ERR_CERT_AUTHORITY_INVALID |
证书未正确安装 / 域名不匹配 / 证书过期 → 用 SSL Labs 检测 |
❌ request:fail url not in domain list |
小程序后台未添加该域名 / 未保存 / 未用 HTTPS / 域名拼写错误(区分 www) |
❌ request:fail timeout |
服务器防火墙未开 443 / Nginx 未监听 443 / 后端服务未启动 |
❌ request:fail invalid url |
URL 含空格、中文、特殊字符 → 使用 encodeURIComponent() 编码参数 |
| ❌ 域名解析失败 | ping your-domain.com 和 nslookup your-domain.com 确认 DNS 生效(TTL 可能延迟) |
✅ 附:自动化建议(进阶)
- 使用
certbot自动续签 Let’s Encrypt(京东云也支持) - 用 GitHub Actions + Jenkins 实现 CI/CD 自动部署
- 微信小程序增加
wx.getNetworkType+ 错误监控上报提升稳定性
如需我为你生成:
- 完整的 Nginx HTTPS 配置模板(适配 Node.js/Express)
- 京东云 DNS 解析截图指引
- 微信小程序
wx.request调用示例代码 - 或帮你检查具体报错日志(贴出
nginx -t/journalctl -u nginx/ 小程序 console 报错)
欢迎随时补充细节,我会为你定制化解答 👇
祝你小程序上线顺利!🚀
CLOUD技术笔记