搞定客户端证书错误,看这篇就够了

本文详细介绍了在TLS/SSL握手过程中遇到的客户端证书错误,包括CFCA证书历史问题、证书链信任模式引起的问题和加密套件协商问题。通过案例分享,解析了问题的根源,如设备缺少CA根证书、Android平台证书链校验机制和加密套件不匹配,并提供了相应的解决方案。掌握这些排查思路,有助于开发者快速解决类似问题。
摘要由CSDN通过智能技术生成

1.TLS/SSL 握手基本流程

图片来源于网络

2.案例分享

2.1 CFCA 证书的历史问题

2.1.1背景

某客户为其生产环境的站点申请了一张由 CFCA 签发的证书。相关域名正确配置该证书且启用 HTTPS 后,经测试发现他们的客户端 App 在低版本手机上( iOS < 10.0,Android < 6.0)无法连接到相关站点。

客户端调试发现,控制台会看到证书无效的错误信息(Invalid Certificate 或 Certificate Unknown )。

2.1.2 排查

起初,工程师并不知道客户的证书是由哪个机构签发以及有什么问题。而对于这类问题,一般均需要客户端网络包做进一步的分析与判断。因此安排客户在受影响的设备上进行问题复现及客户端抓包操作。

获取到网络包后,首先确认了客户端连接失败的直接原因为 TLS 握手过程异常终止,见下:

查看 Encrypted Alert 内容,错误信息为 0x02 0x2E。根据 TLS 1.2 协议(RFC5246 )的定义, 该错误为因为 certificate_unknown。

继续查看该证书的具体信息,根据 Server Hello 帧中携带的证书信息得知该证书由证书机构 China Financial Certification Authority(CFCA) 签发。再根据证书信息中的 Authority Information Access (AIA) 信息确认 Intermediate CA 和 Root CA 证书。确认该证书签发机构的根证书为 CFCA EV ROOT。

回到存在问题的手机设备上(Android 5.1),检查系统内置的受信任 CA 根证书列表,未能找到 CFCA EV ROOT CA 证书;而在正常连接的手机上,可以找到该 CA 的根证书并默认设置为”信任“。

查阅 CFC

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值