uni-app uni.configMTLS安卓IOS兼容问题
uni-app uni.configMTLS安卓IOS兼容问题
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 3.2.9.20210927 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
手机系统:全部
手机厂商:华为
页面类型:vue
打包方式:云端
测试过的手机:
安卓 oppo find X ,ipad mini
示例代码:
uni.configMTLS({
certificates: [{
'host': '192.168.3.254',
'client': '/static/client.p12',
'clientPassword': '888888',
'server': ['/static/server.cer']
}],
success ({code}) {
console.log('configMTLS:' + code)
}
});
操作步骤:
自建双向认证https ssl证书 局域网 ip为域名
预期结果:
安卓报错
实际结果:
应该正常返回
bug描述:
uni.configMTLS 配置双向自定义签名
ios 正常
安卓报错
{
"errMsg": "request:fail abort statusCode:-1 Hostname 192.168.3.254 not verified:\n certificate: sha256/q9ZFbx8F/a9Nxko9oJltogmZgFjx3zWRFdaTVoTIPzA=\n DN: 1.2.840.113549.1.9.1=#161473616e64795f6875616d616f403136332e636f6d,CN=192.168.3.254,OU=ColorCat,O=ColorCat,ST=wuxi,C=cn\n subjectAltNames: [192.168.3.254]"
}
更多关于uni-app uni.configMTLS安卓IOS兼容问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
uni.configMTLS({
certificates: [{
‘host’: ‘192.168.3.254’,
‘client’: ‘/static/client.keystore’,
‘clientPassword’: ‘888888’,
‘server’: [’/static/server.cer’]
}],
success ({code}) {
console.log(‘configMTLS:’ + code)
}
改成.keystore报错
{
“errMsg”: “request:fail abort statusCode:-1 sslSocketFactory == null”
}
更多关于uni-app uni.configMTLS安卓IOS兼容问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
我试了安卓和ios都是跟你相同的返回错误。
请问uni.configMTLS接口怎么使用呢,调用成功返回code为0,然后请求接口还是not verified。
是在app初始的时候调用一次configMTLS,后续就无需调用了吗?还是每次都需要调用configMTLS成功后再次调用请求接口?
调用一次
你好 请问解决了吗》和你一样的问题
一样的问题,使用官方基座 https请求正常,自定义基座https请求报 Trust anchor for certification path not found
请问楼主解决了吗?
同样的问题楼主解决了吗
问题分析:
根据您提供的错误信息,安卓端报错的核心原因是 SSL证书主机名验证失败。具体表现为:安卓系统严格验证证书的 subjectAltNames(SAN) 字段,而您的自签名证书可能未正确配置该字段或使用了IP地址作为主机名,导致安卓的安全机制拒绝连接。
关键点:
- 证书规范差异:iOS 对自签名证书的验证相对宽松,可能允许IP地址直接作为主机名;而安卓(尤其是高版本)要求证书必须包含正确的主机名或IP地址的SAN扩展。
- 错误提示解读:
Hostname 192.168.3.254 not verified表明安卓无法在证书中找到与该IP地址匹配的有效SAN条目。
解决方案:
-
重新生成证书:
- 在创建证书时,确保将IP地址
192.168.3.254添加到SAN字段中。例如,使用OpenSSL生成证书时,需在配置文件中明确指定:subjectAltName = IP:192.168.3.254 - 建议同时为域名(如有)和IP地址配置SAN,以兼容更多场景。
- 在创建证书时,确保将IP地址
-
检查证书内容:
- 使用以下命令验证证书是否包含正确的SAN信息:
openssl x509 -in server.cer -text -noout | grep -A 1 "Subject Alternative Name"
- 使用以下命令验证证书是否包含正确的SAN信息:

