首页 > 解决方案 > 如何查看 OCSP TLS 响应 CertificateStatus?

问题描述

我目前正在尝试了解服务器如何处理 OCSP 装订,并想查看它获得证书签名的频率。status_request根据 RFC 6066(如果我没看错的话) ,如果存在 CertificateStatus 消息,证书和时间戳应该在 下签名并返回。如何查看带时间戳的证书及其对应的签名?到目前为止,我使用了 Wireshark,据我所知,它似乎没有显示此响应。我使用了我认为正在验证证书的 curl,但是我实际上看不到时间戳证书 ( * SSL certificate status: good (0) )。

作为一个附带问题,时间戳证书需要多长时间才能有效?

提前致谢

标签: ssltls1.2ocsp

解决方案


您可以使用openssl s_client带有-status标志的命令向服务器发送证书状态请求。如果服务器支持 OCSP 装订,您将在数据中看到 OCSP 响应的详细信息,包括其上的签名。

例如,如果我们使用 stackoverflow.com 进行尝试:

crow@mac:api$ openssl s_client -connect stackoverflow.com:443 -status
CONNECTED(00000006)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = *.stackexchange.com
verify return:1
OCSP response: 
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
    Produced At: Dec 10 14:03:00 2020 GMT
    Responses:
    Certificate ID:
      Hash Algorithm: sha1
      Issuer Name Hash: 7EE66AE7729AB3FCF8A220646C16A12D6071085D
      Issuer Key Hash: A84A6A63047DDDBAE6D139B7A64565EFF3A8ECA1
      Serial Number: 03F73CD163AB052D41D18294D569DB388C2E
    Cert Status: good
    This Update: Dec 10 14:00:00 2020 GMT
    Next Update: Dec 17 14:00:00 2020 GMT

    Signature Algorithm: sha256WithRSAEncryption
         9a:d6:32:9d:61:74:9a:d7:e0:46:a4:f8:e6:52:29:da:ce:b0:
         ...

关于响应需要多长时间,您会看到有一个“此更新”时间,这是响应者(即签署 OCSP 响应的一方)知道状态正确的最近时间,并且“下一次更新”时间,即更新信息可用的时间。只要当前时间在这两个时间之间,您就可以认为响应是有效的。当然,总是有可能在“下一次更新”时间之前创建了更新(和不同)的响应,唯一确定的方法是对 OCSP 服务器进行实时检查,但总体意图是窗口响应的时间应该足够短,以至于对于大多数目的,您不必担心这一点。


推荐阅读