我正在实现一个OCSP服务器来响应我的自定义CA的OCSP请求。
我已经实现了leaves证书的失效,中间CA证书签署了OCSP响应,而且它似乎正在工作。
但是,在实现OCSP响应以使中间证书无效时,我遇到了困难。我认为使用根证书来签署OCSP响应是个坏主意,因此我查看了在RFC 6960中定义的OCSP授权。我使用根证书生成了一个证书,我相信它能够为OCSP请求签署关于其他中间证书的OCSP响应:
Data:
Version: 3 (0x2)
... //redacted
X509v3 extensions:
X509v3 Key Usage: critical
CRL Sign
X509v3 Basic Constraints: critical
CA:FALSE
OCSP No Check: critical
X509v3 Extended Key Usage:
OCSP Signing
让我们把这个证书称为X
但是,当我向OCSP服务器发出请求时,openssl给出了以下答案:
$ openssl ocsp -issuer /tmp/ca-root -cert /tmp/inter -text -url http://127.0.0.1:5000/1/ocsp-inter/
...
Response Verify Failure
139690508489984:error:27069076:OCSP routines:OCSP_basic_verify:signer certificate not found:crypto/ocsp/ocsp_vfy.c:40:
139690508489984:error:27069076:OCSP routines:OCSP_basic_verify:signer certificate not found:crypto/ocsp/ocsp_vfy.c:40:
/tmp/inter: ERROR: No Status found.
我错过了什么?如果我为-issuer
的openSSL开关选择了证书X,它可以工作,但感觉不对。
我还查看了AIA扩展,我不确定CA_ISSUER字段是指向根-ca还是指向我的证书X
谢谢你帮我理解这件事
发布于 2020-11-16 22:49:01
我碰巧在执行OCSP响应程序方面有一些经验。
如果没有将OCSP签名证书X添加到BasicOCSPResponse中,您可能会看到“签名证书未找到”错误。
BasicOCSPResponse ::= SEQUENCE {
tbsResponseData ResponseData,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING,
certs [0] EXPLICIT SEQUENCE OF Certificate OPTIONAL }
https://security.stackexchange.com/questions/222610
复制相似问题