【问题标题】:OCSP unknown status when passing cert, good status when passing serial通过证书时 OCSP 未知状态,通过串行时状态良好
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多