【问题标题】:openssl s_client -showcerts -servername xyz -connect xyz:443 hangs for a long timeopenssl s_client -showcerts -servername xyz -connect xyz:443 挂了很久
【发布时间】:2020-05-21 10:33:29
【问题描述】:
在我使用的 Ubuntu 上:
$ openssl s_client -showcerts -servername myhost -connect myhost:443 | openssl x509 --enddate --noout
depth=2 ...
verify return:1
depth=1 ...
verify return:1
depth=0 ...
verify return:1
notAfter=Aug 11 10:56:02 2036 GMT
检查例如证书的到期日期。但由于某种原因,它会挂起很长时间——有时长达一分钟——即使结果会立即返回。
有没有办法避免这种等待并在打印结果后终止?
【问题讨论】:
标签:
openssl
ssl-certificate
【解决方案1】:
openssl s_client 被设计为交互式的,默认情况下,它正在等待您的输入。所以你应该在前面加上echo |,或者在命令后面加上</dev/null。
此外,您还可以添加超时以防无法访问服务器。
这就是我在验证不同服务器和服务上的日期的脚本中的做法:
timeout $timeout \
openssl s_client -showcerts -connect $server:$port </dev/null 2>/dev/null \
| openssl x509 -noout -subject -dates