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

2 回复

uni.request在Android平台是基于OkHttp库实现的,因为 TLSv1 存在已知的安全漏洞,OkHttp较高的版本已不再支持。 建议升级服务器的协议。

更多关于tlsv1 is not supported in uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html


从您描述的问题来看,这是一个TLS协议版本兼容性问题。以下是关键分析点:

  1. 问题核心是客户端请求时TLSv1协议不被支持,即使您已尝试关闭SSL验证(sslVerify:false)和改用HTTP协议,但错误依旧。

  2. 可能原因:

  • 客户端设备系统限制:某些Android设备可能禁用了较旧的TLS协议版本
  • 网络中间件拦截:可能是用户网络环境中的代理或防火墙强制要求更高版本的TLS
  • 客户端WebView内核问题:uni-app底层使用的WebView可能不支持某些TLS版本
  1. 建议解决方案: 检查服务器Nginx配置,确保支持TLSv1.2及以上版本:
ssl_protocols TLSv1.2 TLSv1.3;
  1. 客户端调试建议:
  • 使用真机调试查看完整错误日志
  • 测试不同网络环境(WiFi/4G/5G)
  • 检查用户设备系统WebView版本
  1. 代码层面可以尝试:
uni.request({
    // ...其他参数
    sslVerify: true, // 保持验证开启
    timeout: 10000,
    // 可以尝试添加其他header
})
回到顶部