首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓app - javax.net.ssl.SSLHandshakeException:找不到认证路径的信任锚-标准安卓浏览器工作没有任何问题

这个错误是由于SSL握手过程中找不到信任的证书导致的。SSL(Secure Sockets Layer)是一种用于保护网络通信安全的协议,它使用证书来验证服务器的身份和建立安全连接。

在安卓应用中,当使用HTTPS协议进行网络通信时,会进行SSL握手过程。在握手过程中,客户端会验证服务器的证书是否可信。如果找不到认证路径的信任锚,就会抛出javax.net.ssl.SSLHandshakeException异常。

解决这个问题的方法有以下几种:

  1. 信任所有证书:这是一种不安全的做法,但在某些情况下可以作为临时解决方案。可以通过自定义SSL Socket Factory来实现,具体代码如下:
代码语言:txt
复制
TrustManager[] trustAllCerts = new TrustManager[] {
    new X509TrustManager() {
        public void checkClientTrusted(X509Certificate[] chain, String authType) {}
        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[0];
        }
    }
};

try {
    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(null, trustAllCerts, new SecureRandom());
    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
} catch (Exception e) {
    e.printStackTrace();
}

请注意,这种方法会绕过证书验证,存在安全风险,不建议在正式环境中使用。

  1. 添加缺失的证书:如果你有服务器的证书,可以将其添加到应用的信任证书库中。具体步骤如下:
  • 将服务器证书导出为.crt或.pem格式的文件。
  • 将证书文件放置在应用的res/raw目录下。
  • 在应用的代码中加载证书文件并添加到信任证书库中,具体代码如下:
代码语言:txt
复制
try {
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    InputStream caInput = getResources().openRawResource(R.raw.server_cert);
    Certificate ca = cf.generateCertificate(caInput);
    caInput.close();

    KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
    keyStore.load(null, null);
    keyStore.setCertificateEntry("server", ca);

    TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    tmf.init(keyStore);

    SSLContext sslContext = SSLContext.getInstance("TLS");
    sslContext.init(null, tmf.getTrustManagers(), null);
    HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
} catch (Exception e) {
    e.printStackTrace();
}

请注意,这种方法需要将服务器证书文件打包到应用中,如果服务器证书更新,需要重新打包应用。

  1. 使用受信任的证书颁发机构(CA)签发的证书:这是最安全和推荐的做法。通过使用受信任的CA签发的证书,可以避免信任路径的问题。可以从受信任的CA购买证书,并将其配置到服务器上。

以上是针对该错误的解决方法,具体选择哪种方法取决于你的应用需求和安全要求。

腾讯云相关产品和产品介绍链接地址:

  • SSL证书:https://cloud.tencent.com/product/ssl
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云安全产品:https://cloud.tencent.com/solution/security
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

论如何从APP测试搞到刷机

作为一名服仔,完成项目工作必然是本分所在,于是上周三老大扔了一个APK和API文档要进行测试,从这儿起,就注定我这不平凡一周。。。...WTF,然后想到自己这个测试模拟器是5,会不会是版本太低了,于是更新了一波雷电4,美滋滋把APK扔进7模拟器。 ???...http://www.miui.com/unlock/index.html 然后插电脑,在设备中开启USB调试(这里有个坑,有些电脑可能没有驱动,然后网上搜可能有各种各样说法,这里正确解决方法是...这个时候我去网上找了一下相关资料发现了一些眉头,由于新刷入11,高于7默认不信任用户证书,只能重新打包或者root手机刷入系统证书。...APP信任用户证书可能是高于7也可能开发者在apk/res/xml/network_security_config.xml文件进行了设置,例如下面就是只信任系统证书。 <?

2.1K20

RSSHelper正式开源

另外,对于没有提供RSS网页,也没有办法订阅,所以决定自己搓一个: 抓取展示RSS最新10条(包括目录摘要和post内容) 夜间模式(当时经常在晚上看) 当时会点,偷懒采用壳包着WebView...rsshelper_ios 二.Hybrid App 把WebView作为容器,所有内容都是离线页面,没有服务,靠跨域,没有持久存储(sqlite),甚至连基本内存缓存都没有 遇到一些问题:...XML解析,用jsoup 线程通信(抓取HTML和RSS并解析过程在子线程) 跨域,由来请求,绕过去了 与JS双向通信(包括JS接口注入和WebView历史栈管理) 靠这样一个很弱玩具找到了第一份实习工作...iOS打包需要OSX环境以及Xcode,目前真机调试已经不需要99刀认证开发者账号,但上架App Store还是要交钱 0.环境 OSX@10.12.x: 支持构建ios10.x应用,低版本只能构建...启动应用会提示不受信任,需要去设置里信任开发者 七.项目地址 Github:https://github.com/ayqy/RSSHelper 事实上ionic第一个版本就已经放上去了,但那时候还只是一个简单脆弱没有设计应用

2K50

NDSS2019议题解读:通过恶意蓝牙外设打破安全机制

这种方式虽然简化了配对、连接过程,但粗粒度、设备级别的认证,导致即使从机固件受到了攻击,配置文件发生变化,主机依然会信任从机,按照从机提供、修改过恶意配置文件,与从机建立连接,如图 3所示。...图 3 配置文件缺失认证流程 该脆弱性存在,使得攻击者可以使用正常配置文件,欺骗用户将其手机与恶意蓝牙外设配对。...支持这两种设备类型但没有预防滥用相应机制。这两种假设攻击案例,如图 5所示。 ? ? 图 5 个人区域网络场景下攻击流程 在这种攻击场景中,对受害者造成影响如下: 1 网络嗅探和欺骗。...但实际上,在没有任何特权许可情况下,APP依然能够轻松完成打开蓝牙网络共享操作。因此,一旦APP启用该设置,恶意蓝牙外设就可以尝试连接到手机NAT上。...针对本文所述攻击场景,笔者提出如下建议: 1 请设置解锁手机时身份认证(如密码,指纹等),且在任何情况下保证解锁手机时开启身份认证(部分厂商手机,提供智能解锁服务,允许用户在某些信任区域内

2.3K10

7.0+系统抓包方案

从7.0版本开始已经不再信任用户自己安装证书 —— 你仍然可以安装,但证书不会起作用,典型表现就是在开启抓包工具情况下,被抓包 app 是处于断网状态。那么如何解决这个问题呢?...反编译 对应用 apk 文件进行反编译,修改其中配置,让用户自己安装证书被信任。由于我不是专业搞,同时这个方案要求第三方开发者没有采取防止反编译措施,所以 pass。...考虑到目标应用无法在低版本中运行,所以我在模拟器中使用版本是7.0,因为在模拟器中操作证书目录非常简单,所以版本高低也不是问题,有没有 root 更不是问题。下面讲一下关键步骤。...前面介绍都是对 app 进行抓包,那么怎么对小程序抓包呢?这里提供三种方法: (1)模拟器 + Fiddler: 基本步骤和前面介绍差不多。...需要注意是,我们用户证书只是被系统信任了,还没有被微信信任 —— 微信 7.0+ 版本不会信任用户证书,它有自己一个证书列表。

3.2K60

Python+Appium运行简单demo,你需要理解Appium运行原理!

3.查看 App 包名链接 4.Appium 官网介绍 5.为什么有平台版本号?...1.Web-Selenium 运行原理: ? 图片来自网络,画很好 通过 Http 通信,没有改变浏览器访问系统属性,只要访问就可以了。Appium 做自动化也是如此。...比如你在 8 设备上做个什么操作,打开一个 APP,Appium server 检查下目前设备上有没有 8 。如果有,它就把这个命令发送给手机端。...包名–系统当中标识(相当于唯一代号) 有相同包名,就是应用已安装。卸载时候能找到这个包名就能卸载,找不到就不能卸载。 模拟器和真机都是基于 Liunx 内核。...一般手机都有个系统文件夹。很多产商基于原生系统做了很多美化工作,所以很多文件目录会有所改变,每个品牌手机,文件所放目录都不一样。

2.3K10

Python+Appium运行简单demo,你需要理解Appium运行原理!

3.查看 App 包名链接 4.Appium 官网介绍 5.为什么有平台版本号?...1.Web-Selenium 运行原理: 图片来自网络,画很好 通过 Http 通信,没有改变浏览器访问系统属性,只要访问就可以了。 Appium 做自动化也是如此。...比如你在 8 设备上做个什么操作,打开一个 APP,Appium server 检查下目前设备上有没有 8 。如果有,它就把这个命令发送给手机端。...包名–系统当中标识(相当于唯一代号) 有相同包名,就是应用已安装。卸载时候能找到这个包名就能卸载,找不到就不能卸载。 模拟器和真机都是基于 Liunx 内核。...一般手机都有个系统文件夹。很多产商基于原生系统做了很多美化工作,所以很多文件目录会有所改变,每个品牌手机,文件所放目录都不一样。

2.1K00

生态“乱糟糟”成围城

最大问题是Ubuntu未形成生态,进而缺少开发者和像样App。也就是说,用户买了Ubuntu却找不到可以玩儿App,这是小众App通病。...阿里云OS、中国自主操作系统COS和Sailifish均宣称兼容App,来规避这个问题。 魅族Ubuntu版MX3不可能大卖,将成为极客们玩具。...小众操作系统缺乏开发者,进而缺乏App,进而难以吸引用户。没有用户又无法吸引开发者,陷入死循环。 垄断一定程度可以带来一致性体验,iOS生态大而不乱便得益于苹果独裁式控制。...也在尝试收紧控制权。近日谷歌推出一项政策,OEM厂商必须对新设备采用最新版本Android,否则无法获得GMS认证还曾发布开发者指南,引导开发者们遵循一套统一标准开发App。...微信5.2版大改版,便是遵循标准结果。 3、被掐住脖子 日益强大,手机厂商又过渡依赖后果则是,被Google掐住脖子。

77470

移动体验设计6大禁

下面的例子是和ios平台中相同内容显示差异: ? UI元素(上)和ios中UI元素(下) 相比于Material design,ios应用通常外观扁平,不使用厚度和阴影。...iOS版也有一个纯文本样式按钮,但它与全大写字母不同,并且字体更纤细。 ?...Material design(左)vs. ios(右),图片来源:tutsplus 字体也需要遵循每个平台标准使用Roboto字体,iOS使用San Francisco字体系列。...Facebookapp“忘记密码?”按钮 3、不要在用户下载应用程序后立即要求评分 没有人想要被打断,尤其是当一些没用东西出现在显示重要内容中间位置时。...结论 人们对于应用程序有很高期望,而且标准越来越高。因此你需要努力去达到这些期望,并且使你应用程序更加令人愉悦,而不是令人厌烦。提高用户体验不是一次性任务,它是一个持续性工作

2.1K130

逆向从 0 到 1 学习总结

初识逆向是在 2019 年暑假,到现在也快一年了,这一年来有刚从 web 渗透转来迷茫,有成功破解了第一个 app 喜悦,也有通宵熬夜逆向心酸,到现在感觉自己成功踏进逆向大门满足感。...,逆向这东西你越学深,遇见问题一般来说都没有现成解决方案,有的话多半也是商业加密,基本在网上是搜不到,多谷歌和进行日志分析可能找不到怎么解决,但能找到哪里出现问题,能找到哪里出现问题离解决问题就只有...2、流量抓取姿势,很多人一听流量抓取就以为这是 web 渗透做事,其实不然,app 是啥,就是个客户端,和浏览器没什么区别,有时候逆向时候功能点很多找不到逆向点时候完全可以靠定位流量锁定关键代码...,当然,在各大厂商日益重视流量安全今天,抓取流量有时候比较麻烦了,例如,高版本已经不信任个人 https 证书,想通过 https 证书抓取流量在高版本有点行不通了,但是,还是可以通过 xposed...插件、vpn、更换低版本、hook 底层发包函数等方式抓取流量,方法很多,这里只是想说明流量很重要在需要联网 app 逆向过程中。

2.2K50

小米手机安装 charles 证书,提示“没有可安装证书”

解决问题: 1、不要用小米手机自带浏览器下载crt文件。 现下载一个第三方浏览器(例如:uc浏览器,edge浏览器),再下载crt文件。 2、安装证书:不要直接点击crt文件进行安装。...目前腾讯对微信权限管很严,小程序在模拟器上无法使用是普遍现象 版本7+并且微信版本7+ 使用Charles也不能代理请求怎么办?...究其缘由是微信调整了如下安全证书策略: 策略 版本 微信版本 是否可以代理 A 7- 任意版本 是 B 7+ 7- 是 C 7+ 7+ 否 1.系统 7.0 以下版本,不管微信任意版本,都会信任系统提供证书...2.系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供证书 3.系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置证书列表 4.苹果手机无任何影响。...如果服务端没有加密的话,终于可以了,有点心累啊; 最后这两个app下载地址HttpCanary+VirtualApp:链接: https://pan.baidu.com/s/1BJQaFOhCZ14PZKm4OvV2Uw

14.4K30

Android应用测试速查表

客户端攻击 这是渗透测试过程中最具挑战性和激动人心部分。APP被打包成APK文件,也被称为Android Package Kit或Android Application Package。...这可能需要一个已经ROOT设备,以便能访问安例如’/sdcard’常见路径。.../data/data/app_folder/sdcard//sdcard1/ 应用程序需要在本地以sqllite或XML结构存储数据,因此需要执行SQL/XML查询或监控文件I/O。...API认证 l 不安全WebView l 检查凭据是存放在数据存储还是服务器端 l 滥用或可访问AccountManager(用户管理类) l Authenticating Callers组件调用...为了这部分测试请确保你已经准备了以下工具: l 已安装SDK工具Android Studio l 一部已经Rooted设备或模拟器 l 已经Root模拟器可以使用已安装XposedCuckoDroid

1.7K70

鸿蒙开发初体验【鸿蒙专题0】

java (你也可以选择js)我这边java比较熟悉 因为本职工作是做开发 然后点击next下一步 我们填入项目名 项目包名 选择项目存放路径 以及sdk版本即可(这里要注意 项目名 包名 项目存放路径最好不要出现中文...很像开发布局文件对不对 不过鸿蒙全部重写了 所以说像但并不是 我们启动模拟器 点击Tools 选择HVD manager 这时候浏览器会打开华为账号登录界面让你登录 输入自己开发者账号密码登录即可...最后总结: 作为一枚程序员,第一点,第一次上手这个IDE和语言环境还是比较顺利 基本能看懂 具体还要看官网文档和api使用情况,没有具体去深入写, 个人看法学起来应该不难,第二点,有人说这是套壳...我们不否认很多地方有抄袭影子 但是这个不是套壳,套壳是小米 miui oppo vivo 那些对深度定制,个人看法觉得鸿蒙 OS不算套壳是基于liunx系统开发出来 有些地方很像但不是,...第三点 作为一个热衷技术程序员来说 我觉得现阶段 有空了解和学习鸿蒙OS开发 没有坏处 如果有大厂 BAT 后面带头加入进来 鸿蒙OS还是有机会跟 iOS 形成三足鼎立之势 我们现在学也是押宝未来

77020

采访Philipp Crocoll:平台上整合Java和C#

由于Keepass 2是用C#写,我评估了在上用此实现可能性。这是我第一次接触Xamarin版Mono。我早期工作中曾经做过一些C#开发,也有过一点开发经验。...事实证明,版Mono是一个很好平台:你可以同时拥有.net框架以及Java平台和类库强大威力。 另一个好处是,可以直接将Java库包含进来。...而事件处理:“setOnClickListener(...)”会自动转换成C#中“Click += ……”。 对于一些简单接口,我还没有发现任何问题。...在Keepass2Android中使用C#原因是,它让我能够在一个App中用到一个非常强大库(Keepass 2 code)。...还有一点,IDE对于一些特定功能支持比不上Eclipse或者是Android Studio,这会减慢开发速度。 出于这些原因,我可能会根据具体项目来决定是不是要使用Mono版。

1.7K80

手把手教你进行逆向之篡改apk名称和图标

最近假装是时间多了吧,打算学习逆向相关。 先小试牛刀了一下,如何篡改app名称和图标,一起来了解一下吧!...土豆视频这个app可以发现,它应用是drawable下一个ic_launcher图片。 注:悄悄说一下,只能引用.png格式图片,所以这个图片是ic_launcher.png。...替换所有ic_launcher.png为修改过。 重新编译,打包,安装 不仅app名字变了,连图标也变了! 总结 其实根据我理解,逆向更像是一个需要耐心工作。...和正向开发相反,逆向需要不断尝试和试错,才有可能确定哪里管是哪,所以耐心是很重要。 本篇也只是根据刚学三脚猫功夫,总结一点皮毛。...并没有涉及到真正逆向,主要怎么玩如何修改app名和app图标。 学习逆向,理论来说需要会Java基础和Android基础,不可操之过急。

1.8K10

《吐血整理》高级系列教程-吃透Fiddler抓包教程(34)-Fiddler如何抓取微信小程序包-上篇

其实苹果手机如果按照宏哥前边抓取APP设置方式设置好了,应该可以轻松就抓到包了。那么手机小程序就比较困难,不是那么友好了。所以今天宏哥重点说一下手机小程序抓包。...2.前言 首先看下是否满足以下条件 小程序无法抓包原因 : 系统 7.0 以下版本,不管微信任意版本,都会信任系统提供证书 系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供证书...系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置证书列表 微信6.6.7版本:http://dldir1.qq.com/weixin/android/weixin667android1320...3.3.1用户证书 如果小程序或者APP端需要抓取HTTPS请求消息,必须在手机上安装fiddle证书,其安装步骤: 步骤一:在手机端打打开浏览器,输入网址–》http://PCIP:fiddler... 里面的小红书APP,如下图所示 第二步、鼠标选中小红书APP,右击打开文件所在位置,打开后看下文件路径里面有没有 WMPFRuntime 这个文件夹,如果没有这个文件夹就不要继续操作了,这个办法不适合你

4.7K20

快手抓包问题分析

一般来说,常规方法无法抓应用 https 包,通常有以下几种可能: 证书信任问题。在 Android 7 以上,应用会默认不信任用户证书,只信任系统证书,如果配置不得当则是抓不到包。...因此还是老老实实把根证书放在默认路径下。 准备设备 为了方便测试,我在 arm 服务器上使用 redroid 准备了一台虚拟机。...arm 服务器上虚拟机,并用scrcpy操作。...# 在本地主机上连接远程arm服务器上虚拟机 adb connect :5555 # 启动scrcpy scrcpy 到这一步骤时,可以检测网络应该都已经是通了...global http_proxy :0 # 在arm服务器上配置将来源于虚拟机80/443流量直接路由到mitmproxy # 其中 172.17.0.12 位虚拟机ip sudo

3.7K10

Android9.0新特性曝光,你准备好了吗

改善自带文件管理器 像电脑一样,一直都允许用户管理手机上文件,但没有自带文件管理器。好在从6.0棉花糖开始,原生就加入了自带文件管理器。...现在,系统将自带这一功能,自带文件管理器比第三方APP简洁得多,而且该有的功能都有,包括本地和网盘文件管理。可是竟然没有快捷方式。...现在,不少手机都有了“护眼模式”,比如iOS“Night Shift”和厂商定制护眼模式。然而原生没有这个功能。...不信任来源应用安装逻辑 为了切断手机恶意程序最大来源,系统允许用户禁止手机从不信任来源安装APP。...Chrome浏览器里我都能把默认搜索引擎改成百度。而且不仅不能改,还不能把它从屏幕上去掉。 应用多开 有不少第三方定制都有应用多(双)开功能,比如MIUI“应用分身”。

65630

第一夜 第一个应用

承接“Java快速教程”,我将开始写相关文章。 (Android)开发主要使用Java语言。Java语言基础,是开发第一道门槛。再者,一个好应用往往配合有远程服务器。...然而,考虑到移动端已经取得巨大成功,以及移动端尚待开发巨大潜力,移动端开发技能都相当值得“上手”。相关历史,可见Android历史与花边。 开发最好资料是Google文档。...生成第一个应用 启动ADT,设置Work Space路径,即Eclipse工作路径。 ? 进入Eclipse后,点击New Android Application,来创建新App。...运行第一个应用 我们可以在ADT中,控制应用安装和运行 Run -> Run As -> Android Application  由于我们还没有注册其它设备,此时将自动运行模拟器(emulator...友情提醒:自带虚拟器确实很方便,但真的是太慢了。时间都够现磨一杯咖啡了。 其它设备 由于自带虚拟器太慢,因此可以用USB连接设备。大部分设备可以自动识别。

85090

Charles使用以及问题处理

5、打开手机浏览器,输入路径chls.pro/ssl 下载证书。 6、安装证书,进入设置,搜索证书。找到安装CA证书 7、找到下载证书位置,选择下载证书,安装。...5、打开手机浏览器,输入路径chls.pro/ssl 下载证书。 6、安装证书,进入ios设置,会显示已下载证书项,点击对应证书进行安装。 7、设置页面搜索‘证书’开启信任证书开关。...五、问题总结 (一)Charles启动抓取浏览器浏览器访问显示“你访问链接不是私密链接” 答:遇到这个问题,是因为没有安装证书导致,需要在浏览器添加证书,然后重启浏览器。...(三)Charles抓包ios获取到接口,前面显示红叉,unknown 答:在对ios进行抓包时,获取不到数据,请求不到,可能是信任证书设置没有打开。 进入设置,搜索证书,开启信任证书。...(四)Charles手机下载证书不是证书文件 答:在使用进行抓包时,使用系统自带浏览器下载证书,下载证书不是pem结尾文件。这时需要换用其他浏览器下载。

94910

Fiddler 抓取https请求

Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中应用层,能够捕获通过HTTP(S)请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。...(根证书是CA认证中心给自己颁发证书,是信任起始点。...安装根证书意味着对这个CA认证中心信任。),这是一个信任起点,这也是Fiddler伪造CA证书能够获得客户端和服务器端信任关键。   ...首先看一下7.0以上系统,抓包如下:    如果是安装7.0以下版本,这里拿4.0来演示,如图:   结论是android7.0以下版本,在模拟器下抓包https是没有问题。...当然手机同样版本也会支持。而高于7.0系统则抓不了https请求。 注意这里https请求是没有携带CA证书到请求中去

96830
领券