代码之家  ›  专栏  ›  技术社区  ›  Victor

使用OpenSSL针对证书(而不是整个证书链)验证时间戳令牌

  •  1
  • Victor  · 技术社区  · 6 年前

    我希望根据一个证书验证rfc3161时间戳令牌,该证书出现在一个外部受信任的证书列表中,因此验证在那里停止。不需要对完整的证书链进行验证。

    openssl ts -verify 没别的了

    1 回复  |  直到 6 年前
        1
  •  3
  •   Reinier Torenbeek    6 年前

    openssl ts 中的应用程序 1.0.2 分支只有有限的选项来影响证书验证过程。使用这个版本,如果不修改应用程序的代码或编写自己的解决方案,似乎就不可能实现您想要的。

    1.1.0 the ts 1.1.0 documentation 这意味着 在该分支中,证书验证的配置选项与其他验证应用程序类似。特别是 -partial_chain this comment 是有用的。

    在测试一个与你的情况相似的情况时,以下内容对我很有用(其中 TSA_cert.pem 仅包含签名者的证书,不包含链):

    $ openssl ts -verify -in response.tsr -data myFile.txt -CAfile TSA_cert.pem -partial_chain
    Verification: OK
    

    验证相同的响应文件,但修改了三个字节:

    $ openssl ts -verify -in response_corrupted.tsr -data myFile.txt -CAfile TSA_cert.pem -partial_chain
    Verification: FAILED
    140450542175232:error:21071065:PKCS7 routines:PKCS7_signatureVerify:digest failure:crypto/pkcs7/pk7_doit.c:1007:
    140450542175232:error:2F06A06D:time stamp routines:TS_RESP_verify_signature:signature failure:crypto/ts/ts_rsp_verify.c:143:
    

    1.1.1 前- release 因为我遇到了这个错误: Error #2F067065 - "ess signing certificate error" when validating timestamp reply 1.1.0