在 UniApp 中,iOS 平台使用 HTTPS 自签证书时,由于 iOS 系统对证书安全要求严格,默认会拒绝自签证书。以下是配置步骤和注意事项:
1. 服务器端配置
- 确保自签证书有效,且包含正确的域名或 IP 地址。
- 证书格式需为
.crt 或 .pem,并包含完整的证书链(如适用)。
2. UniApp 网络请求配置
在发送 HTTPS 请求时,需在请求配置中忽略证书验证(仅限开发测试环境,生产环境不推荐):
uni.request({
url: 'https://your-domain.com/api',
method: 'GET',
sslVerify: false, // 关闭 SSL 证书验证(仅开发用)
success: (res) => {
console.log('请求成功:', res.data);
},
fail: (err) => {
console.error('请求失败:', err);
}
});
注意: sslVerify: false 仅在部分平台有效,iOS 可能仍需额外处理。
3. iOS 原生配置(必要步骤)
iOS 系统强制验证证书,需在原生工程中配置:
4. 生产环境建议
- 避免自签证书:使用受信任的 CA 机构(如 Let’s Encrypt)签发免费证书。
- 域名备案:确保域名解析正常且支持 HTTPS。
总结
- 开发阶段可通过
sslVerify: false 和修改 Info.plist 临时解决。
- 生产环境必须使用可信证书,否则 iOS 会阻断请求。
- 若需严格安全,考虑在服务端部署合法证书。
如有更多问题,可参考 UniApp 官方文档或 iOS 开发指南。