【发布时间】:2014-07-29 01:40:03
【问题描述】:
好的,所以我有一个看起来像这样的多层 ca 系统:
-ROOT_CA
----intermediate_CA
--------intermediate_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
奇怪的是,如果我检查第一个示例中的请求,它确实发送了正确的序列号。
我这辈子都想不通。有什么想法吗?
【问题讨论】:
-
只是一个想法,但您是否还必须明确信任服务器上链中的一个证书?
-
我正在使用多个 -verify_other 选项(每个 ca 证书一个)和一个 -trust_other 选项。
-
尝试将您传递给
issuer的文件更改为仅包含intermediate_CA2而不是整个链。 -
这确实是解决方案的一部分。显然 openssl ocsp 不太喜欢证书链。
标签: ssl cryptography openssl certificate ocsp