DAY18_SSL/TLS连接与TCP/IP连接
来源:互联网 发布:风险矩阵分析法 编辑:程序博客网 时间:2024/05/16 04:08
首先,我想做的是linux的两主机命令行实现DH密钥交换的隧道通信
原先想先建立TCP/IP连接,用常规的方式把信息附加上去,后来想想感觉有些不对,就找到了可以直接命令行建立SSL/TLS连接的办法:
s_server
#生成各种服务器证书,参考CA一节;
SSL服务程序,前提是需要生成各种证书;可测试客户端,如各浏览器https协议支持; 用法:
>>>s_server [-accpet port][-context id] [-verify depth][-cert filename] [-debug][-msg][-www][-WWW][-HTTP][-crlf][ q Q r R P S] 其中,
-accept arg 监听TCP端口,缺省为4433;
-contextarg 设置ssl上下文,不设置采用默认; -cert certname 服务使用的证书文件名; -certform 证书格式; -keyform 私钥格式; -pass arg 私钥口令来源; -msg 打印协议内容;
-timeout 设置超时;
-key file 服务使用的私钥文件;
-no_tmp_rsa 不生成临时RSA密钥; -verify depth 设置证书验证深度; -Verify arg 设置为1,服务端必须验证客户身份;
-CAfile 指定CA证书文件;
-state 打印SSL握手状态; -nbio 不采用bio;
-quiet 不打印输出信息;
-www 返回用户一个网页;内容为SSL握手的内容;
-WWW -HTTP 将某文件作为网页返回客户端;URL请求为https://myhost/page.html,则把./page.html返回给client;不设置时,客户端终端输入什么,服务返回相同字符; -crlf 将用户在终端输入的换行回车转化为/r/n;
连接命令有,
-q 中断当前连接,但不关闭服务; -Q 中断连接,退出程序;
-r 重新协商;
-R 重新协商,并要求客户端证书;
-P 在TCP直接送明文,造成客户端握手错误并断开连接; -S 打印缓存的SESSION信息; 例子: >
s_server -state -msg -CAfile demoCA/cacert_bak.pem -key demoCA/private/cakey.pem
举例:> s_server -accept 4433 -msg -state
s_client
SSL/TLS客户端程序,与s_server对应,可通信 用法:
Openssl s_client [ -connect host:port][ -verify depth ][-cert filename] [pause][-debug][-ssl3][-tls1][cipher cipherlist][-rand 其中,
-host host 设置服务地址; -port 设置端口;
-connect host:port 设置服务地址和端口; -verify 设置证书验证深度; -cert arg 设置握手采用的证书; -certform arg 设置证书格式; -key arg 指定客户私钥名;
-CApath 设置信任CA文件路径,ca文件名采用特殊xxx.0形式,通过x509 -hash 获得; -CAfile 指定CA文件名;
-reconnect 重新连接,进行session重用;
-pause 每当读写数据时,sleep 1s; -debug 调试
-showcerts 显示证书链; -msg 打印协议信息; -state 打印SSL状态; -quiet 不显示客户端数据; -cipher 指定加密套件;
-crlf 将用户在中断输入的换行回车转化成/r/n; 例子:
#连接服务器200.200.145.201
举例:> s_client -connect 200.200.145.201:4433 -state -msg > s_client -showcerts
有一篇关于SSL/TLS 与 TCP/IP 讨论讲的不错:
ssl/tls虽然被定义为运行在传输层(TCP)之上,为应用层提供一个安全的端到端的数据传输服务的网络协议中的一个层次。但是它并没有做到很好的分层设计(或者说,是没有很好的融入到已有的TCP/ip协议族中)。【原文:http://blog.sina.com.cn/s/blog_93b45b0f0101lekd.html】
- DAY18_SSL/TLS连接与TCP/IP连接
- SOCKET连接与TCP/IP连接
- TCP/IP——TCP建立连接与释放连接
- TCP/IP连接建立与断开
- 详解tcp/ip连接建立与释放
- TCP/IP 断开连接
- TCP/IP连接状态图
- TCP/IP连接状态图
- TCP/IP连接状态图
- TCP/IP连接状态图
- TCP/IP连接
- TCP/IP之十:TCP连接的建立与终止
- TCP/IP详解学习 -- TCP连接的建立与终止
- TCP-IP详解:TCP的连接与终止
- TCP/IP之十:TCP连接的建立与终止
- TCP-IP详解卷-TCP连接的建立与终结
- 测试连接数据库与tcp/ip、端口错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败
- tcp连接与断开连接
- NSData与UIImage互转
- Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN
- UIViewController的误用
- Mysql学习之连接查询
- 网络应用编程接口
- DAY18_SSL/TLS连接与TCP/IP连接
- 致命拜访:如果黑客入侵人脑,世界会怎样?
- OpenSceneGraph实现的NeHe OpenGL教程 - 第四十三课
- Oracle删除重复数据
- go语言 的 new 和不new
- Deep Learning模型之:CNN卷积神经网络(二) 文字识别系统LeNet-5
- 数学和物理符号怎么编辑方便
- DatagramSocket广播使用 附HandleThread使用
- connect ECONNREFUSED 127.0.0.1:27017