Android 10 SSL双向认证握手失败

公司项目前端时间遇到的一个问题(已经解决了),最近有时间准备分享一下。
项目工程中一直使用SSL双向认证的套接字通信方式,前段时间有Android 10的用户反馈他们的手机无法正常登录了。于是,我追踪这个问题,发现是双向认证时握手失败(瞬间懵逼了),以前对这块不熟。报错如下:
于是各种度娘、Google、QQ技术群咨询,都没有找到好的解决方案。最终在Android开发者平台上查看Android 10最新特性时发现了一个亮点(https://developer.android.google.cn/about/versions/10/behavior-changes-all)

查看原工程内证书信息,使用的证书格式是2013年自签名的SHA-1证书,

找到了一个出发点后,于是找到服务端人员,让他们重新生成一个SHA-256的证书,
替换证书后,双向认证握手成功了,而且兼容低版本手机。
由于我们工程使用的是BKS文件,需要将服务端提供的.crt和.pfx文件转换为BKS文件,参考这篇文章即可 https://blog.csdn.net/weixin_33897722/article/details/91715102

Android 10 SSL双向认证握手失败相关推荐

  1. HTTPS|SSL笔记-SSL双向认证成功握手过程(含wireshark分析)

    这里只研究连接过程. 整体的流程是这样的 前三个那个SYN.SYN ACK.ACK是TCP三次握手,就不说了. 1. 握手成功后,客户端发送自己支持的加密套,和随机数给服务端,也就是Client He ...

  2. java使用bks双向认证_客户端与服务器SSL双向认证(客户端:Android

    客户端与服务器SSL双向认证(客户端Android-服务端vc)-含源码(一)服务端已经生成了client.p12.server.p12.ca.p12:主要实现客户端过程(二)目录结构(三)客户端注 ...

  3. SSL双向认证和SSL单向认证的流程和区别

    refs: SSL双向认证和SSL单向认证的区别 https://www.jianshu.com/p/fb5fe0165ef2 图解 https 单向认证和双向认证! https://cloud.te ...

  4. JAVA实现发送HTTPS请求(SSL双向认证)

    一.项目背景 Java项目需要作为客户端发起HTTPS请求访问服务端,并且需要携带证书进行SSL双向认证,当前提供的证书相关文件有:ca.crt.ca.key.client.crt.client.ke ...

  5. SSL双向认证和SSL单向认证的区别

    双向认证 SSL 协议要求服务器和用户双方都有证书.单向认证 SSL 协议不需要客户拥有CA证书,具体的过程相对于上面的步骤,只需将服务器端验证客户证书的过程去掉,以及在协商对称密码方案,对称通话密钥 ...

  6. SSL双向认证和单向认证原理

    一.公钥私钥 1,公钥和私钥成对出现 2,公开的密钥叫公钥,只有自己知道的叫私钥 3,用公钥加密的数据只有对应的私钥可以解密 4,用私钥加密的数据只有对应的公钥可以解密 5,如果可以用公钥解密,则必然 ...

  7. 什么是SSL双向认证,与单向认证证书有什么区别?

    SSL/TLS 证书是用于用户浏览器和网站服务器之间的数据传输加密,实现互联网传输安全保护,大多数情况下指的是服务器证书.服务器证书是用于向浏览器客户端验证服务器,这种是属于单向认证的SSL证书.但是 ...

  8. 超详细的Asp.net使用SSL双向认证,一篇就够了

    传统:项目和项目之间https仅通过SSL单向认证后进行数据传输: 本文:项目和项目之间做到SSL双向认证,防止攻击者恶意破坏: 关于单向认证和双向认证的区别:https://cloud.tencen ...

  9. 【ssl认证、证书】SSL双向认证java实战、keytool创建证书

    文章目录 概述 keytool示例 参考 相关文章: //-----------Java SSL begin---------------------- [ssl认证.证书]SSL双向认证和SSL单向 ...

最新文章

  1. 如何使用好android的可访问性服务(Accessibility Services)
  2. python输入输出流详解_Python 初体验之 输入输出流
  3. 大数据引擎启动时常见错误汇总
  4. 前端开发必备!Emmet使用手册
  5. IDEA报错:Loading class `com.mysql.jdbc.Driver‘. This is deprecated. The new driver class is `com.mysql
  6. python中输入17=x会引起错误_python新手常犯的17个错误
  7. Android 常用的数据加密方式
  8. 事件图谱是什么?它能预测未来吗?
  9. 如何设置postfix别名邮件组只接受本域的邮件
  10. (193)FPGA上电后IO的默认状态(Vivado软件默认为z)
  11. JMeter基础之组件的作用域与执行顺序
  12. redhat 6安装mysql5.7_RedHat6.5/CentOS6.5安装Mysql5.7.20的教程详解
  13. 添加用户到sudoers
  14. PackageManager.getPackageSizeInfo||UserHandle.myUserId()
  15. 自助友情链接交换网站php源码,友情链接交换系统
  16. 【opencv】 报错:C2065 “CV_COVAR_ROWS”、“CV_COVAR_NORMAL”、“CV_COVAR_SCALE”: 未声明的标识符、
  17. 关于山东大学(青岛)的吐槽
  18. 微信 考勤 php,JavaScript_微信企业号开发之微信考勤Cookies的使用,在上篇文章给大家介绍了微信 - phpStudy...
  19. 《你要如何衡量你的人生》笔记与感想(三)不提供答案,只提供寻找答案的方法
  20. Trajectory Similarity Join in Spatial Networks

热门文章

  1. android shell du,Linux du 命令 command not found du 命令详解 du 命令未找到 du 命令安装 - CommandNotFound ⚡️ 坑否...
  2. 云原生---docker
  3. 矩阵分析: Hilbert行列式
  4. .xin 域名信用验证问题集锦
  5. 有哪些适合新手的练手Java项目?
  6. Netty 学习之旅:ByteBuf 篇之 ByteBuf 内部结构与 API 学习
  7. Linux 内存映射之文件映射
  8. 大成都范围广告位招商
  9. 田径运动会成绩管理系统
  10. flutter 吸顶效果