gpt4 book ai didi

android - CertPathValidatorException : Trust anchor for certification path not found when using Fiddler as proxy in Android

转载 作者:行者123 更新时间:2023-11-29 01:18:20 80 4
gpt4 key购买 nike

关注我的 previous question (如果你有想法,它仍然没有答案......),我试图在Java代码中明确设置代理。执行此操作时,我终于在 Fiddler 中看到了请求隧道(找到了与 SSLv3 兼容的 ClientHello 握手...),但仍然没有看到请求本身。但是,我在不使用代理时收到的响应 200 不是抛出以下错误:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

简而言之,我的主要目标是通过模拟网络浏览器行为(在 header 和发布参数方面)来自动化登录过程。我设法在 PC 上使用 native Java 应用程序完成此操作,但完全相同的代码在 Android 上的某些请求中返回 400(可能是因为 HttpUrlConnection 类实现在 Android 中与 Oracle SDK 完全不同),所以我想捕获传出流量并找出差异。我成功收到了从我的 PC 发送的请求,但现在却在 Android 上苦苦挣扎。

Android 设备浏览器请求已成功捕获,问题仅出现在应用程序(特别是我的应用程序)中。我在设备上安装了 Fiddler 证书并根据需要设置了 WiFi 代理。

我也在两台设备上试过了,其中一台已经root了,没用。

任何帮助将不胜感激!

部分代码:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.0.120", 8888)); //My PC IP on local LAN
conn = (HttpsURLConnection) url.openConnection(proxy);
conn.setRequestMethod("GET");
conn.setUseCaches(false);
conn.setRequestProperty(...) //Repeating thie line to add headers
int responseCode = conn.getResponseCode(); //Exception is thrown in this line

最佳答案

可能是 Fiddler 根证书没有正确安装。要验证是否尝试从设备浏览器捕获 Fiddler HTTPS 流量。如果它不起作用,这里有大量关于自定义 CA 故障排除的信息 - How to install trusted CA certificate on Android device?

另一种方法是以编程方式设置您的连接以信任 Fiddler CA。创建包含 Fiddler 根 CA 的自定义 KeyStore,并使用该 KeyStore 初始化 TrustManager。然后使用 TrustManager 初始化 SSLContext 并将 SSLContext 提供的 SSLSocketFactory 与您的 HttpsURLConnection 一起使用。

关于android - CertPathValidatorException : Trust anchor for certification path not found when using Fiddler as proxy in Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38354236/

80 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com