【问题标题】: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
    

    【讨论】:

      猜你喜欢
      • 2021-07-31
      • 2017-10-02
      • 2014-01-16
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2013-08-27
      • 2023-03-20
      相关资源
      最近更新 更多