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

Posted IT1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTPS|SSL笔记-SSL双向认证失败(客户端证书信任库不含服务端证书)握手过程(含wireshark分析)相关的知识,希望对你有一定的参考价值。

这里我把客户端证书信任库里面清空,及没放服务端证书,Java报错不一样,但抓包是一样的,在此记录下过程。

1. 前3个包是TCP三次握手,在此不解析,对应的包如下:

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

 具体内容如下:

 

其中Random为随机数,其Handshake Type为Client Hello。CIpher Suites为加密套。signature_algorithms为签名算法这里可以。

3. 服务端收到Client Hello后,回复Ack对应的包如下:

 

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

对应的包:

内容如下:

 

发送了Random随机数,选择的加密套为TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

5. 客户端收到后Server Hello Done后回复Ack,对应的包如下:

 

6. 客户端收到服务端证书后,进行验证对比自己的信任库,当信任库没有,或者没有对应的服务端证书就会报这个错,对应的包如下Certificate Unknown:

 内容如下:

 

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

 

8. 最后就是TCP四次分手的过程,对应的包如下:

 

以上是关于HTTPS|SSL笔记-SSL双向认证失败(客户端证书信任库不含服务端证书)握手过程(含wireshark分析)的主要内容,如果未能解决你的问题,请参考以下文章

不是很明白ssl双向认证和单向认证有啥区别吗?

NGINX 配置 SSL 双向认证

SSL双向认证和单向认证的区别是啥?

Qt&Java笔记-Qt与Java进行SSL双向认证(Qt客户端,Java服务端)

百度CDN配置HTTPS双向认证

国密证书双向认证客户端发送哪个