传递证书时OCSP未知状态,传递序列时状态良好

时间:2014-07-29 01:40:03

标签: ssl cryptography openssl certificate ocsp

好的,所以我有一个多层的ca系统,如下所示:

-ROOT_CA

---- intermediate_CA

-------- intermediate_CA2

------------客户证书......

我在intermediate_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 

奇怪的是,如果我在第一个例子中检查请求,它确实发送了正确的序列。

我不能为我的生活弄清楚这一点。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

所以解决方案是显然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

请注意,最好有一个完全独立的密钥对进行签名,但是没有。

客户端连接看起来如下:

$ openssl ocsp -issuer intermediate_ca_2.crt -CApath /path/to/trust/store -cert client.crt -text -url http://localhost:xxxx