逆向小知识:SSLHandshake: Received fatal alert: certificate_unknown

简介: 逆向小知识:SSLHandshake: Received fatal alert: certificate_unknown

引言

Charles分析报文常遇到的问题:SSLHandshake: Received fatal alert: certificate_unknown

I SSLHandshake: Received fatal alert: certificate_unknown的解决方案

1.1 问题分析

现象:不采用Charles 代理的时候,可以正常访问,当使用Charles的时候报certificate_unknown

image.png

原因:由于https的cipher rc4不够安全,在charles 3.11中如果服务端只支持rc4就会报错SSLHandshake: Received fatal alert: handshake_failure

1.2 解决方案

  1. 获取二进制证书,并在手机去安装和信任cer

可以使用以下openssl命令来获取到服务器的公开二进制证书(以google为例):"openssl s_client -connect www.google.com:443 </dev/null 2>/dev/null | openssl x509 -outform DER > https.cer"

  1. 若还没解决问题,配置NSAppTransportSecurity信息允许http 连接,当然也包括允许https的RC4-SHA

这种https的SSL证书 属于不太安全的那种,如果一定要用Charles的话,只能将app的SSL验证放开,达到允许请求http的级别就可以抓包了。

<key>NSAppTransportSecurity</key>
 <dict>
  <key>NSAllowsArbitraryLoads</key>
  <true/>
 </dict>

see also

目录
相关文章
|
8月前
|
域名解析 缓存 网络协议
关于错误ERR_NAME_NOT_RESOLVED
如果以上方法都未能解决问题,你可能需要联系你的网络管理员或互联网服务提供商以获取更多帮助,或者考虑尝试在不同的网络环境中访问网站。
1733 0
|
8月前
|
NoSQL Redis
解决(error) ERR Errors trying to SHUTDOWN. Check logs.问题~
解决(error) ERR Errors trying to SHUTDOWN. Check logs.问题~
241 0
|
图形学 Android开发
Send Debug.NetworkRecordStart Error
Send Debug.NetworkRecordStart Error
99 1
使用errors.Wrapf()代替log.Error()
使用errors.Wrapf()代替log.Error()
65 0
|
关系型数据库 MySQL C++
Error:fatal error C1010: unexpected end of file while looking for precompiled head
Error:fatal error C1010: unexpected end of file while looking for precompiled head
131 0
排错-Error--memory violation Exception ACCESS_VIOLATION received解决方
排错-Error--memory violation Exception ACCESS_VIOLATION received解决方
246 0
|
数据库 C++
VS错误的解决解决:LINK fatal error LNK1000: Internal error during IncrBuildImage
VS错误的解决解决:LINK fatal error LNK1000: Internal error during IncrBuildImage
265 0
|
Java 应用服务中间件 Windows
|
开发工具 数据安全/隐私保护 git
fatal: Authentication failed for解决方法
fatal: Authentication failed for解决方法
|
资源调度 JavaScript
The futex facility returned an unexpected error code
The futex facility returned an unexpected error code
869 0