openssl向SSL服务器发送请求[收集的ssl原理未验证][转贴]
clq
浏览(537) -
2018-02-08 12:09:16 发表
编辑
关键字: openssl
[2018-03-23 16:15:12 最后更新]
openssl向SSL服务器发送请求[收集的ssl原理未验证][转贴]
http://blog.csdn.net/hongchangfirst/article/details/78282746?locationNum=1&fps=1
打印所有server端发过来的请求
openssl s_client-connect corp.zhc.com:4443
将客户端发送的内容也显示出来。
openssl s_client-connect
corp.zhc.com:4443 -msg
将状态也打印出来
openssl s_client-connect
corp.zhc.com:4443 -msg –state
强制使用tls1.0协议
openssl s_client-connect
corp.zhc.com:4443 -msg –state -tls1
强制使用ssl2协议,现在很多服务器都不支持ssl2和ssl3了,所以可能会直接握手失败。
openssl s_client-connect v:4443 -msg –state -ssl2
强制使用ssl3协议。
openssl s_client-connect
corp.zhc.com:4443 -msg –state -ssl3
SSL的通信过程是这样的:
1 client向server索要并验证公钥。
2 双方协商生成对话密钥
3 开始用对话密钥进行加密通信。
前两步就是SSL握手,SSL握手是在TCP三次握手之后开始的,SSL握手是四次,握手时序是:
client -> server CLIENT_HELLO
(supported protocol version, TLS1.0, a random number R1, supported
cipher, compression suites)
client <- server SERVER_HELLO (the protocol version TLS1.0, a random number R2, the cipher)
client <- server SERVER_CERTIFICATE
client <- server SERVER_KEY_EXCHANGE
client <- server CERTIFICATE_REQUEST (optional, 向客户端索要证书,进行双向认证)
client <- server SERVER_HELLO_DONE
client -> server CLIENT_CERTIFICATE (optional, 如果server端索要的话)
client -> server CERTIFICATE_VERIFY
client -> server CLIENT_KEY_EXCHANGE
client -> server CHANGE_CIPHER_SPEC (在生成一个随机数R3,然后用服务器公钥进行加密变成pre-master-key))
client -> server FINISHED
client <- server CLIENT_CERTIFICATE (optional, 如果server端索要的话)
client <- server CERTIFICATE_VERIFY
client <- server CLIENT_KEY_EXCHANGE (用私钥将pre-master-key解密出来得到R3)
client <- server CHANGE_CIPHER_SPEC (确认用会话密钥进行通信)
client <- server FINISHED
会话密钥是根据三个随机数(R1,R2,R3)根据协商好的加密算法算出来的。这个会话密钥是对称密钥,供接下来的通信使用。
原文:http://blog.csdn.net/hongchangfirst/article/details/78282746
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.