Ssl OCSP通过证书时状态未知,通过串行证书时状态良好
好的,我有一个多层ca系统,看起来像这样: -根癌 ----中成药 --------中间钙 ------------客户端证书 我在intermediate_CA2上设置了一个OCSP响应程序,其启动方式如下:Ssl OCSP通过证书时状态未知,通过串行证书时状态良好,ssl,cryptography,openssl,certificate,ocsp,Ssl,Cryptography,Openssl,Certificate,Ocsp,好的,我有一个多层ca系统,看起来像这样: -根癌 ----中成药 --------中间钙 ------------客户端证书 我在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
$ 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 0xxxxxxxxx
(显然传递了一个有效的序列,以响应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
这只是一个想法,但可能是您还必须明确信任服务器上链中的一个证书吗?我使用多个-verify_其他选项(每个ca证书一个)和-trust_其他选项。尝试将传递给
颁发者的文件更改为仅包含中间\u CA2
,而不是整个链。确实,解决方案的一部分。显然,openssl ocsp不太喜欢证书链。