通过证书时 OCSP 状态未知,通过串行时状态良好
-
20-12-2019 - |
题
好的,我有一个多层 ca 系统,如下所示:
-ROOT_CA
----中级_CA
--------中级_CA2
------------客户证书...
我在 middle_CA2 上设置了一个 OCSP 响应器,启动方式如下:
$ openssl ocsp -index intermedia_ca_2_index.txt -CA ca_crt_chain.crt -rsigner intermedia_ca_2.crt -rkey intermedia_ca_2.key -port xxxx -text
在客户端,我发出一个 ocsp 请求,如下所示:
$ openssl ocsp -issuer ca_crt_chain.crt -CAfile ca_crt_chain.crt -cert client.crt -text -host localhost:xxxx -verify_other... -trust_other
请注意,client.crt 只是客户端证书,而不是整个链,尽管我已经尝试了两种方法但都不起作用。它总会回来
Response verify OK
client.crt: unknown
如果我改变 -cert client.crt
到 -serial 0xXXXXXXXXX
(显然传递一个与 client.crt 对应的有效序列)然后一切都可以使用:
Response verify OK
0xXXXXXXXXX: good
奇怪的是,如果我检查第一个示例中的请求,它确实发送了正确的序列号。
我一生都无法弄清楚这一点。有任何想法吗?
解决方案
所以解决方案是显然 openssl ocsp 不喜欢链文件。所以我的服务器调用现在看起来像这样:
$ openssl ocsp -index intermedia_ca_2_index.txt -CA intermediate_ca_2.crt -rsigner intermedia_ca_2.crt -rkey intermedia_ca_2.key -port xxxx -text
请注意,最好有一个完全独立的密钥对用于签名,但是 w/e。
客户端连接将如下所示:
$ openssl ocsp -issuer intermediate_ca_2.crt -CApath /path/to/trust/store -cert client.crt -text -url http://localhost:xxxx
不隶属于 StackOverflow