tlsv1 is not supported in uni-app
tlsv1 is not supported in uni-app
产品分类:
uniapp/App
PC开发环境操作系统:
Windows
PC开发环境操作系统版本号:
win11
HBuilderX类型:
正式
HBuilderX版本号:
4.65
手机系统:
Android
手机系统版本号:
Android 14
手机厂商:
荣耀
手机机型:
荣耀
页面类型:
vue
vue版本:
vue2
打包方式:
云端
项目创建方式:
HBuilderX
示例代码:
_post(path, data = {}, rawResponse = false, rawResponseData = false) {
var vue=this;
var url=Config.KONG_IM_SERVER + path;
let response;
let p = new Promise((resolve, reject) => {
uni.request({
url:url ,
data: data,
sslVerify:false,
header: {
'content-type': 'application/x-www-form-urlencoded', // 默认值
'authToken': getItem('authToken-app'),
},
method: 'POST',
success: (res) => {
console.log('_post result', res);
if (res.statusCode === 200) {
if (rawResponse) {
resolve(res.data);
return;
}
if (rawResponseData) {
resolve(res.data.data);
return
}
} else {
throw new Error('request error, status code: ' + res.status)
}
},
fail: (res) => {
console.log('fail', url,res);
reject(url+":"+JSON.stringify(res));
throw new Error('request error: ' + res)
}
});
});
return p;
}
操作步骤:
点击密码登陆
预期结果:
服务端 nginx 收到请求 并处理
实际结果:
服务端nginx 没有收到请求 无日志
bug描述:
您好 我们的app 安卓个别用户 uni.request 报错: tlsv1 is not supported (见附件) 服务端 nginx 没有收到请求 服务端使用的 nginx 通过测试 nginx 上 tlsv1 1.1 1.2 1.3 都是正常的 同时我们在客户端 为 uni.request 设置 sslVerify:false, 也无法解决 甚至,我们放弃了https 直接使用http 也是同样报错(见附件, 已经更换为http了) 辛苦查下原因
更多关于tlsv1 is not supported in uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uni.request在Android平台是基于OkHttp库实现的,因为 TLSv1 存在已知的安全漏洞,OkHttp较高的版本已不再支持。
建议升级服务器的协议。
更多关于tlsv1 is not supported in uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html
从您描述的问题来看,这是一个TLS协议版本兼容性问题。以下是关键分析点:
-
问题核心是客户端请求时TLSv1协议不被支持,即使您已尝试关闭SSL验证(sslVerify:false)和改用HTTP协议,但错误依旧。
-
可能原因:
- 客户端设备系统限制:某些Android设备可能禁用了较旧的TLS协议版本
- 网络中间件拦截:可能是用户网络环境中的代理或防火墙强制要求更高版本的TLS
- 客户端WebView内核问题:uni-app底层使用的WebView可能不支持某些TLS版本
- 建议解决方案: 检查服务器Nginx配置,确保支持TLSv1.2及以上版本:
ssl_protocols TLSv1.2 TLSv1.3;
- 客户端调试建议:
- 使用真机调试查看完整错误日志
- 测试不同网络环境(WiFi/4G/5G)
- 检查用户设备系统WebView版本
- 代码层面可以尝试:
uni.request({
// ...其他参数
sslVerify: true, // 保持验证开启
timeout: 10000,
// 可以尝试添加其他header
})