运行 openssl s_client 命令连接到远程主机后。终端上显示以下输出。有人能帮我理解start time
这个日志中的内容吗?它代表什么,是什么格式?
我认为它应该是挂钟时间,单位为微秒。但是我找不到相关文档。
---
SSL handshake has read 3876 bytes and written 319 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: 3F4EE3992B46727BE2C7C3E76A9A6A8D64D66EE843CB1BB17A76AE2E030C7161
Session-ID-ctx:
Master-Key: 016209E50432EFE2359DB73AB527AF718152BFE6F88215A9CE40604E8FF2E2A3AC97A175F46DF737596866A8BC8E3F7F
Key-Arg : None
Start Time: 1397678467
Timeout : 300 (sec)
Verify return code: 19 (self signed certificate in certificate chain)
---
DONE
另外,是否有任何方法可以使用 openssl s_client 或 s_time 来测量握手时间和完成请求的时间(tls 的记录阶段)。
s_time 表示握手所花费的总时间和从服务器获取资源的时间。
使用 curl,可能有办法获得time_appconnect这是握手时间,总时间然后将两者相减,即可得到记录阶段的大致时间。(忽略查找、请求等所花费的时间,因为它们实际上可以忽略不计)。
我正在尝试测量使用某些防火墙规则和不使用某些防火墙规则建立 TLS 连接所需的时间。
答案1
关于开始时间,它是一个时间戳,您可以通过日期获取它或通过它进行转换。
#!/bin/bash
NOW=$(date "+%s") #timestamp
starttime="1397678467"
convert=$(date --date="@$starttime" "+%Y-%m-%d %H:%M:%S")
echo $convert
因此,转换后的时间戳将获得以下日期 2014-04-16 23:01:07
您还可以使用 date 命令来帮助您转换和计算来自 curl -w 输出的 time_appconnect 和 time_total
尝试除以 time_appconnect 或 time_total / 60 = 分钟。因为 time_total 或 time_appconnect 将以秒为单位打印