简介:本文深度解析小程序服务器域名与业务域名的核心概念、配置流程及安全规范,提供分步操作指南与常见问题解决方案,助力开发者高效完成合规部署。
服务器域名是小程序发起网络请求时必须配置的合法域名列表,涵盖HTTPS请求、WebSocket连接及上传下载等场景。其核心作用包括:
典型场景示例:
当小程序调用wx.request()发起API请求时,目标域名需在服务器域名列表中。若请求https://api.example.com/data,则需将api.example.com添加至request合法域名。
业务域名主要管控小程序内的文件下载与网页跳转行为,包括:
wx.downloadFile()下载的文件来源域名。<web-view>组件嵌入的H5页面域名。配置差异点:
与服务器域名不同,业务域名需额外验证文件下载权限,且每个小程序最多可配置10个业务域名。
域名选择原则:
api.example.com)192.168.1.1:8080)SSL证书配置:
证书生成示例(OpenSSL):
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
登录小程序后台:
进入「开发」→「开发设置」→「服务器域名」模块。
域名分类配置:
验证文件上传:
下载微信提供的验证文件(如WX20230801_example.txt),上传至域名根目录,确保可通过https://yourdomain.com/WX20230801_example.txt访问。
开发工具设置:
在微信开发者工具中,勾选「不校验合法域名」选项(仅限开发阶段)。
本地HOSTS映射:
修改系统HOSTS文件,将测试域名指向本地IP:
127.0.0.1 dev.example.com
HTTPS自签名证书:
使用mkcert等工具生成本地可信证书:
mkcert -installmkcert dev.example.com
api.prod.example.com)api.test.example.com)static.example.com)在Nginx/Apache中配置以下安全头:
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";add_header X-Content-Type-Options "nosniff";add_header X-Frame-Options "DENY";add_header Content-Security-Policy "default-src 'self'";
域名过期监控:
使用DNSPod/阿里云DNS的到期提醒功能。
证书续期自动化:
配置Certbot自动续期:
certbot renew --dry-run
异常请求监控:
通过微信云开发或自建日志系统记录403/404错误。
缓存问题:
清除微信开发者工具缓存,或等待2小时生效。
协议不匹配:
检查是否误用HTTP而非HTTPS。
域名解析延迟:
使用dig yourdomain.com确认DNS解析正常。
CORS配置示例:
在Nginx中添加:
location / {add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';}
微信特定限制:
避免在wx.request中设置withCredentials: true。
文件路径错误:
确认验证文件位于域名根目录,而非子目录。
缓存问题:
尝试使用无痕模式访问验证文件。
证书链不完整:
使用SSL Labs测试工具检查证书链。
环境变量区分:
在Nginx配置中使用变量:
map $http_x_env $api_domain {default api.prod.example.com;"test" api.test.example.com;}
DNS解析策略:
使用DNS轮询或智能解析实现灰度发布。
HTTP/2配置:
在Nginx中启用HTTP/2:
listen 443 ssl http2;
连接池复用:
配置Keepalive参数:
keepalive_timeout 65;keepalive_requests 100;
资源预加载:
使用<link rel="preconnect">提示域名连接:
<link rel="preconnect" href="https://api.example.com">
备案信息一致性:
确认域名备案主体与小程序主体一致。
隐私政策声明:
在小程序设置中填写完整的隐私政策URL。
等保2.0要求:
关键业务系统需通过三级等保认证。
通过系统化的域名配置与管理,开发者可构建安全、高效的小程序网络环境。建议每季度进行一次域名健康检查,包括证书有效期、DNS解析状态及安全头配置。对于企业级应用,可考虑使用API网关实现统一的域名管理与流量控制,进一步提升系统可靠性。