这里我把服务端信任库添加了其他证书,不含客户端的证书,这时SSL认证失败报错如下。下面来分析下:

1. 首先是TCP三次握手,对应的包如下:

2. 握手成功后,客户端发送自己支持的加密套,和随机数给服务端,也就是Client Hello

对应的是这个:

具体内容如下:

其中Random为随机数、Cipher Suites为加密套及signature_algorithms为签名算法。

4. 服务端收到后回复ACK,对应的包如下:

5. 服务端发送自己的随机数以及选择一个加密套以及服务端证书给客户端也就是Server Hello

对应的包:

具体如下:

可知Handshake为Server Hello Done。

Random为随机数。Cipher Suite为选择的加密套。

Certificate里面含有证书。

6. 客户端回复ACK对应的包如下:

7. 客户端端发送自己的证书,握手类型为Client Key Exchange

对应的包:

具体内容如下:

其中Handshake Protocol为Client Key Exchange。

Certificate为证书。

8. 服务端收到后回复ACK对应的包如下:

9. 服务端拿到客户端证书后,发现自己的信任库里面没有此证书,就发出Alert,描述为Bad Certificate,对应的包如下:

具体内容如下:

Alert Message为Fatal,描述为Bad Certificate

10. 客户端收到服务端的Alert后,回复ACK:

11. 最后就是TCP4次分手了,这里程序写得估计有点问题,在此不截图了,此博文只研究握手过程。

HTTPS|SSL笔记-SSL双向认证失败(服务端证书信任库不含客户端证书)握手过程(含wireshark分析)相关推荐

  1. ios https 单项认证 双向认证 以及服务端配置

    单项认证:客户端APP包里保存一份证书 用于校验服务端证书是否合法 双向认证:单项认证以外,   客户端(不是app,这里指系统)要拥有一份证书 用于传给服务端用于校验客户端证书是否合法 分两方面讲解 ...

  2. 自己在服务端搭建git库,在客户端使用git push出现remote rejected的解决方案

    错误截图 ! [remote rejected] master -> master (branch is currently checked out) error: failed to push ...

  3. Centos 7 环境下,如何使用 Apache 实现 SSL 虚拟主机 双向认证 的详细教程:

    1. testing ! ... 1 1 原文参考链接: http://showerlee.blog.51cto.com/2047005/1266712 很久没有更新LAMP的相关文档了,刚好最近单位 ...

  4. HTTPS|SSL笔记-SSL双向认证失败(客户端证书信任库不含服务端证书)握手过程(含wireshark分析)

    这里我把客户端证书信任库里面清空,及没放服务端证书,Java报错不一样,但抓包是一样的,在此记录下过程. 1. 前3个包是TCP三次握手,在此不解析,对应的包如下: 2. 握手成功后,客户端发送自己支 ...

  5. 加密之SSL和单双向认证

    文章目录 1 SSL 1.1 SSL了解 1.2 导入证书 1.3 tomcat配置SSL 1.4 具体操作 2 单向认证 2.1 第三方签名 3 双向认证 3.1 引言 3.2 使用openssl脚 ...

  6. ssl介绍以及双向认证和单向认证原理 (转)

    证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1.       CA证书,也叫根证书或中间 ...

  7. ssl介绍以及双向认证和单向认证原理

    证书介绍 SSL安全证书可以自己生成,也可以通过第三方的CA(Certification Authority)认证中心付费申请颁发. SSL安全证书包括: 1.       CA证书,也叫根证书或中间 ...

  8. HTTPS|SSL笔记-SSL分手过程(Encrypted Alert)

    目前在做一个多线程Restful风格的Web服务器. 以前只分析了握手过程,今天来看下分手过程. 服务端端口:18888 客户端端口:53532 框起来的那个是SSL分手的2个包,后面4个是TCP分手 ...

  9. CAS 使用 HTTPS 单向认证方式 服务端和客户端配置

    注:以下配置为本人亲测,如有问题请留言:转载请注明:http://blog.csdn.net/wqmain/article/details/8562602 目录结构如下: l  名词解释 l  测试环 ...

最新文章

  1. Jupyter notebook运行指定的conda虚拟环境
  2. 学习PL/SQL最好的书籍推荐
  3. java 文件中查找指定的单词,查找指定文本文件中的单词数的Java程序
  4. Python到底能干什么
  5. 40.leetcode17_letter_combinations_of_a_phone_number
  6. 计算机终端保密检查 玩游戏,计算机终端保密检查系统
  7. jquery easyui datagrid deleteRow(删除行)的BUG!
  8. java提高_最有效提高Java的10个计划
  9. rails consol reload!
  10. Warshall‘s algorithm 算法的实现及优化
  11. fbx sdk android,Autodesk FBX SDK Program 中文 (一)
  12. 股票入门基础知识|游资或者庄股出货的结构形态
  13. Sklearn之KMeans算法
  14. 宿松中学2021高考成绩查询,宿松2018高考成绩公布
  15. 15天基础爬虫、selenium、scrapy使用,附全程实现代码
  16. android版音乐播放器----卡拉OK歌词实现(二)
  17. JAVA判断是不是回文_Java 基础编程练习(判断是否为回文)
  18. 使用ASP.NET做android的后台服务
  19. 资讯网站寻找热门话题若干途径
  20. gwr模型用什么做_为什么我的 CV 模型不好用?没想到原因竟如此简单……

热门文章

  1. GitHub进一步了解
  2. 因kuaipan等PPA造成的Duplicate sources.list entry 错误
  3. 新手编程:程序员 5 种编程入门方法,快速学会一门编程语言!
  4. Hadoop技术在商业智能BI中的应用
  5. 今天的西红柿就跑了的P8U8源码
  6. 【小点点】上架了他们的官方Windows 8应用
  7. string的飞鸽传书字符串缓冲区
  8. 飞鸽传书2007很给力
  9. 一个内部转岗的机会,要不要尝试?
  10. 前端们等了8年!HTML5标准终于完工了