HTTPS|SSL笔记-SSL双向认证失败(服务端证书信任库不含客户端证书)握手过程(含wireshark分析)
這里我把服務端信任庫添加了其他證書,不含客戶端的證書,這時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分析)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux笔记-给Linux配置DNS
- 下一篇: Spring Boot文档阅读笔记-对S