Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >最新Android SDK和Emulator上的Charles SSL代理问题

最新Android SDK和Emulator上的Charles SSL代理问题
EN

Stack Overflow用户
提问于 2016-09-01 13:46:14
回答 2查看 1.6K关注 0票数 1

我不知道这是否与更新Android构建工具有关,因为我没有立即尝试,但我似乎无法让Charles在Android上正确地使用SSL代理(它以前工作得很好)。

简而言之,如果我在Charles的api端点上启用ssl代理,我会得到:

代码语言:javascript
运行
AI代码解释
复制
Caused by: java.security.cert.CertificateException: com.android.org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate: Certificate expired at Wed Aug 31 10:09:00 GMT+02:00 2016 (compared to Thu Sep 01 15:18:53 GMT+02:00 2016)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:344)
at com.android.org.conscrypt.TrustManagerImpl.checkServerTrusted(TrustManagerImpl.java:219)
at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:115)
at com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:556)
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:324)

当然,我检查了我们的服务器证书(它们没有过期)。我已经检查了setup很多次,我尝试删除模拟器(API23和24)并重新安装新的,我甚至尝试升级构建工具和编译sdk版本到24并使用Java8。我还尝试升级到Charles 4并重新安装根证书。

keytool -list -keystore/usr/libexec/java_home/jre/lib/security/cacerts -storepass changeit确实列出了查尔斯证书。(对于1.7和1.8 jdks)

Charles Root证书已正确安装在仿真器上,并将于2044过期

如果我在Charles上禁用SSL代理,那么在不运行Charles的情况下,一切都可以正常工作。

此外,当使用运行API 24的仿真器时,例外略有不同:

代码语言:javascript
运行
AI代码解释
复制
Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:563)
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:444)
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:508)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:401)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:375)
at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:304)
at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:178)
at com.android.org.conscrypt.OpenSSLSocketImpl.verifyCertificateChain(OpenSSLSocketImpl.java:596)
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(Native Method)
at com.android.org.conscrypt.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:357)

更重要的是要注意,相同的设置在使用相同iOS端点的api模拟器上工作得很好。因此,这肯定与Java/Android配置有关。

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2016-09-20 12:38:44

如果你的目标是API level 24,那么Android 7.0就会发生这种情况。现在,用户添加的CA在默认情况下是不受信任的,每个应用程序都必须明确选择加入。

要使您的应用程序信任查尔斯证书,请在AndroidManifest中声明一个自定义网络安全配置

代码语言:javascript
运行
AI代码解释
复制
<application
    android:networkSecurityConfig="@xml/network_security_config"
    >

使用以下配置在res/xml/network_security_config.xml中创建文件:

代码语言:javascript
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <!-- Trust user added CAs while debuggable only -->
            <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

更多信息:http://android-developers.blogspot.fr/2016/07/changes-to-trusted-certificate.htmlhttps://developer.android.com/training/articles/security-config.html

票数 4
EN

Stack Overflow用户

发布于 2016-09-11 17:12:58

我最终删除了所有gradle缓存文件夹和项目.gradle文件夹

代码语言:javascript
运行
AI代码解释
复制
rm -rf ~/.gradle/caches
rm -rf .gradle

并强制Kotlin使用v1.0.3而不是EAP构建,这又一次起到了作用。我不完全知道这里出了什么问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39273266

复制
相关文章
如何在 Python 中读取 .data 文件?
在本文中,我们将学习什么是 .data 文件以及如何在 python 中读取 .data 文件。
很酷的站长
2023/02/22
6.3K0
如何在 Python 中读取 .data 文件?
如何在python中惰性地读取文件?
惰性地读取,就是在读文件的时候,不是直接将整个文件读到内存之中,而是一行一行的读取。这对于读取如网页日志这样的贼大的文件来说,可以减少打开文件的响应时间以及所占用的内存。
灯珑LoGin
2022/10/31
2K0
Python Numpy 从文件中读取数据
测试文件内容(test1.txt) hello,123,nihao 8,9,10 io,he,no 测试代码 import numpy # dtype:默认读取数据类型,delimiter:分隔符 world_alcohol = numpy.genfromtxt("test1.txt", dtype=str, delimiter=",") # 数据结构 print(type(world_alcohol)) # 数据内容 print(world_alcohol) # 帮助文档 print(help(nump
山海散人
2021/03/03
4.5K0
如何在Java中逐行读取文件
本文翻译自How to read a file line by line in Java
ccf19881030
2020/11/24
10.8K0
python中读取文件的read、rea
 #读取文件所有内容,返回字符串对象,python默认以文本方式读取文件,遇到结束符读取结束。
py3study
2020/01/20
1.8K0
python读取txt文件中的数组
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139543.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/23
4.3K0
python读取txt文件中的json数据
txt文本文件能存储各式各样数据,结构化的二维表、半结构化的json,非结构化的纯文本。 存储在excel、csv文件中的二维表,都是可以直接存储在txt文件中的。
全栈程序员站长
2022/08/30
7.5K0
python读取txt文件中的json数据
Nodejs中读取文件目录中的所有文件
关于Nodejs中的文件系统即File System可以参考官方Node.js v12.18.1的文档File system
ccf19881030
2020/06/28
15.1K0
使用wget命令下载Google drive上的文件
此处的文件是指公开的文件,不需要输入密码也不需要登录Google drive即可获取的文件。
烤粽子
2021/07/07
9.2K0
Google drive copy File
Creates a copy of a file and applies any requested updates with patch semantics. Try it now.
拿我格子衫来
2022/01/24
4600
matlab读取mnist数据集(c语言从文件中读取数据)
mnist database(手写字符识别) 的数据集下载地:http://yann.lecun.com/exdb/mnist/。
全栈程序员站长
2022/08/01
5.2K0
matlab读取mnist数据集(c语言从文件中读取数据)
如何使用python读取txt文件中的数据
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139037.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
7.2K0
java pfx_如何在Java中读取.pfx文件的内容?
import java.security.cert.X509Certificate;
全栈程序员站长
2022/09/06
2.8K0
Google Drive 的信息检索
对于使用 Google 全家桶的公司,Google 文档类的信息泄露时常发生。出现这种情况主要的原因是文档的权限设置问题,用户可能将文档配置为 anyoneCanFind, anyoneWithLink, domainCanFind, domainWithLink,这四种权限都属于比较公开的权限。后两个属于在域内可以查看到文档,一般来说也是不提倡如此设置,尤其是文档中包含敏感信息的。
madneal
2023/09/21
2770
Google Drive 的信息检索
关于Python读取文件的路径中斜杠问题
最近用Python读取文件,发现有时候用 '\' 会报错,换成 '\\' 就不会报错。查了下资料发现,'\'是Python的转义字符,如果路径中存在'\t'或者'\r'这样的特殊字符,'\'就无法起到目录跳转的作用,因此报错。解决办法就是告诉系统'\'不是转义字符,'\\'就起这种作用,现给出一个示例。
py3study
2020/01/14
5K0
Python中,关于读取文件编码解码的问
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb1 in position 94: illegal multibyte sequence
py3study
2020/01/15
1.9K0
用 Cyberduck下载 / 上传 Google Drive 大文件
用Google Colab训练模型时,可以将训练好的权重模型存储到Google Drive上,很方便。但是,将模型权重下载下来就特别麻烦。另外,上传bert模型和数据集也特别困难。尝试了一些方法,最好的方法是使用Cyberduck(就是下面这个鸭子),传输稳定,并且可以断点续传。
SeanCheney
2020/05/09
4.2K0
用 Cyberduck下载 / 上传 Google Drive 大文件
python 读取单文件夹中的图片文件信息保存到csv文件中
# -*- coding: utf-8 -*- # @Time : 2019-09-17 10:21 # @Author : scyllake import os import csv #要读取的文件的根目录 root_path=r'C:\Users\zjk\Desktop\整理后的图片' #将所有目录下的文件信息放到列表中 def get_Write_file_infos(path): # 文件信息列表 file_infos_list=[] # 遍历并写入文件信息
小海怪的互联网
2019/10/14
5.8K0
点击加载更多

相似问题

从Google Drive文件中读取文本

12

Google Drive读取python中的部分文件

10

Python无法更改保存在Google Drive文件流中的文件

117

Google Collab :从Google drive读取gsheet文件

130

如何从Google Drive读取txt文件?

258
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档