ssl - 如何查看 OCSP TLS 响应 CertificateStatus?
问题描述
我目前正在尝试了解服务器如何处理 OCSP 装订,并想查看它获得证书签名的频率。status_request
根据 RFC 6066(如果我没看错的话) ,如果存在 CertificateStatus 消息,证书和时间戳应该在 下签名并返回。如何查看带时间戳的证书及其对应的签名?到目前为止,我使用了 Wireshark,据我所知,它似乎没有显示此响应。我使用了我认为正在验证证书的 curl,但是我实际上看不到时间戳证书 ( * SSL certificate status: good (0)
)。
作为一个附带问题,时间戳证书需要多长时间才能有效?
提前致谢
解决方案
您可以使用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 服务器进行实时检查,但总体意图是窗口响应的时间应该足够短,以至于对于大多数目的,您不必担心这一点。
推荐阅读
- c# - 用于过滤 USB 数据传输的库?
- javascript - 获取对象内数组内对象的属性
- label - 如何获取默认文本元素以分配/使用标签?
- html - 更改下拉菜单的位置
- batch-file - 同时从 bat 文件中执行参数化的 JMX 文件
- process - Hyperledger Fabric 交易提议和提交冲突
- openlayers - 在 OpenLayers 中,有没有办法在翻译层中渲染 Mapbox 矢量切片?
- javascript - 将标头发送到客户端后无法设置标头错误
- c# - 使用固定标题在每页 2 列中打印 html 表
- excel - VBA 代码编译时出现无效的限定符错误