Android 7引入了对证书处理方式的一些更改(http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html),不知怎的,我不能让我的Charles代理工作了.
我的network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
我正在调试模式下运行.但不管怎样,我明白了javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found..
不用说,我确实安装了pfx证书Settings -> Security -> Install from storage.证书显示在User Credentials但不在Trusted credentials -> User.在我的棒棒糖设备上,证书列在那里.
我正在使用okhttp3作为HTTP库.
知道我做错了什么吗?
我想使用Charles代理工具测试Android设备的Https调用.我需要查看调试应用程序的原始请求/响应内容.我通过在"代理设置" - > SSL选项卡下添加主机和端口来配置Charles.当我运行应用程序时,所有SSL调用似乎都会从Charles快速消失.有没有人知道如何解决这个问题.Charles文档似乎没有Android设备的信息.
我正在尝试Android Virtual Device从 Android Studio运行。一切正常,直到我尝试从虚拟设备内部访问任何 Google 服务。我们的网络正在使用公司代理,我们必须安装公司证书才能使应用程序正常工作。我通过 将证书安装到 Java(jdk) keytool -importcert -trustcacerts ...,然后以Android\Android Studio\jre\bin相同的方式安装。然后使用 将证书上传到虚拟机中adb push C:\certs\cert1.cer /sdcard/cert1.cer,并将其应用到 Android 的设置中。但我仍然收到错误
Caused by: javax.net.ssl.SSLHandshakeException: Unacceptable certificate: CN=CompanyName Root CA, OU=IT Department, O='CompanyName Professional' LLC, L=NY, ST=NY, C=EN
Run Code Online (Sandbox Code Playgroud)
无论如何绕过是真的吗?如果我已经导入了证书,为什么它仍然要求提供证书。在浏览器中,如果在虚拟机中打开它,所有网站都可以正常工作。谢谢。