Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown
来源:互联网 发布:jenkins linux搭建 编辑:程序博客网 时间:2024/06/07 02:16
前提:
Android使用Charles抓取Https请求的报文时,Android和Charles都正确安装了证书之后出现抓包失败,报错SSLHandshake: Received fatal alert: certificate_unknown,如下图所示:
原因:
安卓7之后调整了安全策略会导致部分手机抓包失败,请参考此链接:https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html
文中提到默认情况下,针对API Level 24及更高版本的应用程序不再信任用户或管理员添加的CA用于安全连接。意思就是就算你在手机上安装了受信任的证书也是没卵用的。
解决办法 一:
前提你的手机上已经正确安装了Charles证书:
在你的AndroidManifest.xml文件中添加如下配置:
<?xml version="1.0" encoding="utf-8"?><manifest ... > <application android:networkSecurityConfig="@xml/network_security_config" ... >...</application></manifest>
在res目录下新建一个xml文件夹,之后在res/xml/路径下新建文件network_security_config.xml
res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config> <domain includeSubdomains="true">你要抓取的域名</domain> <trust-anchors> <certificates src="user"/>//信任用户自己安装的证书 </trust-anchors> </domain-config></network-security-config>
解决办法 二:
手机上是否有装证书都可以使用下面的方法:
在你的AndroidManifest.xml文件中添加如下配置:
<?xml version="1.0" encoding="utf-8"?><manifest ... > <application android:networkSecurityConfig="@xml/network_security_config" ... >...</application></manifest>
在res目录下新建一个xml文件夹,之后在res/xml/路径下新建文件network_security_config.xml
res/xml/network_security_config.xml:
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config> <domain includeSubdomains="true">你要抓取的域名</domain> <trust-anchors> <certificates src="@raw/证书文件名"/> </trust-anchors> </domain-config></network-security-config>
在res目录下新建一个raw文件夹,将手机上安装的证书文件放入res/raw/目录下,证书格式:pem,ca等(chales的话就是将你在手机浏览器打开http://charlesproxy.com/getssl下载的证书放入即可),步骤2中的证书文件名,就是你放入res/raw/目录下文件的名字
配置完重新运行项目,就可以看到报文了!
更多配置方法请参考Google-Android
- Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown
- SSLHandshake: Received fatal alert: certificate_unknown
- boom! charles ios10.3 代理失败 SSLHandshake: Received fatal alert: unknown_ca
- 解决javaapns 推送iOS Invalid certificate chain (Received fatal alert: certificate_unknown)! 错误
- charles 3.11对于cipher限制 Received fatal alert: handshake_failure
- Android使用charles抓包
- SSLHandshakeException: Received fatal alert: handshake_failure
- Android 使用Charles 进行抓包
- android使用Charles抓包https请求
- [Android 开发工具] 网络抓包Charles
- Android使用青花瓷Charles抓包
- android使用Charles抓包https请求
- Charles https抓包 — Android
- Charles抓包(Android手机)
- android真机使用Charles抓包
- Android抓包 Charles http接口调试
- 苹果推送:Received fatal alert: certificate_revoked
- java mail Received fatal alert: handshake_failure
- 面向过程与面向对象的区别
- C++ 服务器与客户端通信 (网络编程)
- codeup-How Many Tables
- 【Nova】nova-conductor学习
- Netty权威指南pdf
- Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown
- 数据结构NOIP内容小结
- 189. Rotate Array
- memcached--存储命令--replace
- 解决Linux下Python3.5无法使用tkinter
- 任务分配hihocoder 1309(离散化 )
- STM8S003F3 选项字 ----- /* 原创 */
- UI -- 协议传值(简单的使用)
- Java线程创建模式