[TLS] 使用 OpenSSL 命令行测试 TLS13 0-RTT

要求 OpenSSL 的版本至少是 1.1.1 以及之后的版本


Server command


bash 复制代码
openssl s_server -accept 4433 -tls1_3 -key domain.key -cert domain.crt -keylogfile server.log -early_data

early_data: 指定服务器端接受客户端发送的 early_data

还有另外一个配置可用: max_early_data 用来指定服务器端愿意接受的最大的 early_data 的数据量

我这里还用了 keylogfile 选项,输出过程中的 tls key log, 用于在 wireshark 中查看明文内容


Client command


bash 复制代码
openssl s_client -connect 127.0.0.1:4433  -tls1_3 -sess_out session.dat

sess_out: 将当前 session 信息存储到一个文件中,以下下一次使用

bash 复制代码
openssl s_client -connect 127.0.0.1:4433  -tls1_3 -sess_in session.dat -early_data hello.txt -debug

sess_in: 使用上一步生成的 session 文件,进行 会话恢复。

early_data 指定文件名, 这个文件中存放想要发送的 0-RTT 数据。


session 文件示例:

bash 复制代码
-----BEGIN SSL SESSION PARAMETERS-----
MIIEOgIBAQICAwQEAhMCBCCqZT2bkX35D0acIjq/YzP19wQyrguTK3lP3g+9+mpR
LQQwEdwqTLujEedq7PqmP+837tF84VUlo/3/hRR1i1JCkxPFLfDP9Cu6tf4Dz996
aqY5oQYCBGc0JuyiBAICHCCjggOIMIIDhDCCAmygAwIBAgIUSNNbwuXBGVaut7Zz
rC1QRI6wAbUwDQYJKoZIhvcNAQELBQAwWzELMAkGA1UEBhMCQVUxEzARBgNVBAgM
ClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEU
MBIGA1UEAwwLZXhhbXBsZS5vcmcwHhcNMjIwMzAzMDgxMDE0WhcNNDkwNzE5MDgx
MDE0WjBVMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UE
CgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ4wDAYDVQQDDAVhZG1pbjCCASIw
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKz+lAi0f7O08/Ce5jMxPU7eWJHO
msCRYhA2wmxHKglUVLcOCeT+ff04uAL5TKnYQCUIy+NuIlin6w1Zl0q/QBHxsw15
/dN5mmOJNQJoMcTXLT3nI7Rg2lkRQayhZDL8UgKlceqqUlKwtGJyWTWQX54H+jQL
53V2DEHnNuJK7eVwDNx8eXAo+JJSc79khiiE3C2lQwgLAjpbrEESWDWo2lGJWKkh
ooR6pFDz5Ej1K4gdo/1IhMn0RvHURBEECKLIiqJUzYHNA83/s2NewS9m4uzqKjs7
POh40ifoEPjgkitkHpJyAdERIj8VCOBNEiW8DyCSLHtn0yrWvu+gJ8CwzOkCAwEA
AaNGMEQwHwYDVR0jBBgwFoAUmPnt26vJQaO+oBdEL/TCZt5quPswCQYDVR0TBAIw
ADAWBgNVHREEDzANggtleGFtcGxlLm9yZzANBgkqhkiG9w0BAQsFAAOCAQEAJ5WE
vJnEpl/vxZ+eZyA/PSKTx8yuqi7WaRK3B3qZRuGFqzZ5UXtNkaygI6HCgAt8AMAO
Q5A2XLWzw6L8t5y9zh39XKyn5gMQYN64zniKc9j/hvygu6wg6bMlPPfKIXM8A60X
NJ+LCuGFZXEPN534pMMG4NZlEsoH3jv/gF/z0z41Z0iVxgdktItf6Boeml8MZfiu
y1RLSPangf18XqKBSuCVU+6/CbgqRsHejfXaUDCEVLxeiiw7FVoifYOlHf2Qrze9
9tuwKVNTwmtsBefqTHY4aeuwvl4y5gInmklcBWpJ2LFfhibKJy19qIlJ0h90eGP8
sHz4nZ5t2GgKns2kKqQCBAClAwIBFakEAgIcIKoiBCDMp5Ew8PQd5gnGjeFJTssj
OxwWG28ScqOaGq+F5BUkQK4GAgQ42AK1rwQCAkAA
-----END SSL SESSION PARAMETERS-----
相关推荐
默|笙25 分钟前
【Linux网络】传输层协议TCP(3)滑动窗口、流量控制
linux·网络·tcp/ip
xiaoye-duck1 小时前
《C++ 项目:手写大模型接入 SDK》ChatGPT接口设计(中):全量响应实现和测试
网络·c++·语言模型·chatgpt
ManageEngineITSM2 小时前
工单分类怎么设计?类别、子类别与自动分派的实用方法
大数据·服务器·数据库·人工智能·分类·数据挖掘
CANI_PLUS2 小时前
电脑文件共享
运维·服务器
Linux界最忧郁之人2 小时前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
无言听风雨丶2 小时前
systemd 与信号 / 僵尸进程:Linux 进程管理的底层逻辑与排错
linux·服务器·网络
小贾要学习3 小时前
【C++后端开发项目】Reactor 模型 / C++ 仿写 muduo HTTP 服务器:让底层网络库真正跑起网页
linux·服务器·c++·http·网络编程·muduo·reactor模型
g5zhu58963 小时前
没有公网ip的情况下,本地能ping服务器服务器不能ping本地,让服务器能访问本地某端口的简单方法
服务器·网络协议·tcp/ip
SDWAN_Cheap3 小时前
BGP是什么,广播IP是什么?两个容易混淆的概念拆解
网络·tcp/ip·bgp·广播ip
程序员JerrySUN3 小时前
PCIe Gen5 SSD 为什么读得快、写得慢?从存储原理到 Linux 性能实测
linux·服务器·网络