概述
微信小程序要求所有网络请求必须通过HTTPS协议,且服务器域名需在小程序管理后台完成校验。本文提供一套完整的域名校验服务器配置方案,涵盖Nginx、Apache及Tomcat等常见Web服务器,确保开发者能快速通过微信官方校验。
域名校验原理
微信服务器会向开发者填写的域名发起HTTP/HTTPS请求,要求服务器返回指定内容(如校验文件或响应头)。常见的校验方式包括:
- 文件校验:在域名根目录放置微信提供的校验文件(如MP_verify_xxx.txt),微信服务器通过访问
http(s)://yourdomain.com/MP_verify_xxx.txt验证文件内容。 - DNS校验:通过添加TXT解析记录完成验证。
- API回调校验:部分场景需服务器响应特定JSON或状态码。
服务器配置步骤
1. 准备SSL证书
小程序强制要求HTTPS,需为域名申请SSL证书(免费推荐Let's Encrypt或阿里云/腾讯云免费证书)。证书文件包括.crt和.key。
2. Nginx配置示例
- 将校验文件上传至网站根目录(如
/var/www/html/MP_verify_xxx.txt)。 - 编辑Nginx配置文件,添加server块监听443端口,并包含证书路径。
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/yourdomain.crt;
ssl_certificate_key /path/to/yourdomain.key;
location / {
root /var/www/html;
index index.html;
}
}
需确保校验文件可直接通过HTTPS访问,且响应状态码为200。
3. Apache配置示例
- 启用mod_ssl模块,将校验文件放入DocumentRoot目录。
- 在VirtualHost中配置SSL和证书路径。
DocumentRoot "/var/www/html"
ServerName yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/cert.crt
SSLCertificateKeyFile /path/to/privkey.key
4. Tomcat配置示例
- 将校验文件放入webapps/ROOT目录。
- 编辑server.xml配置SSL连接器。
需将证书转换为JKS格式。
验证与常见问题
验证方法
- 在小程序管理后台“开发设置”中添加域名,并点击“保存并提交审核”。
- 使用curl命令测试:
curl -I https://yourdomain.com/MP_verify_xxx.txt,应返回200及正确内容。
常见问题
- 校验失败提示“域名未通过ICP备案”:需确保域名已备案且在小程序后台填写正确。
- 文件校验超时:检查服务器防火墙或CDN是否屏蔽微信IP段。
- HTTPS证书无效:证书链不完整或过期,建议使用全链证书。
总结
合理配置服务器是微信小程序域名校验成功的关键。建议优先使用文件校验方式,并确保服务器对微信官方IP(mp.weixin.qq.com相关地址)开放443端口。定期检查证书有效期,避免服务中断。