使用OpenSSL

时间:2018-09-01 15:18:06

标签: openssl

我正在寻找针对证书的RFC 3161时间戳记令牌的证书,该令牌出现在外部受信任的证书列表中,因此验证在那里停止。无需针对整个证书链进行验证。

openssl ts -verify需要CA文件或CApath中的CA证书。有没有一种方法可以针对证书验证令牌,并且仅此

1 个答案:

答案 0 :(得分:2)

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

但是,在OpenSSL的1.1.0分支中,执行证书验证的应用程序的配置实现已合并并保持一致。 -请参阅the ts 1.1.0 documentation简介底部的验证选项,这意味着该分支中的openssl ts具有与其他验证应用程序相似的用于证书验证的配置选项。特别是,this comment中提到的选项-partial_chain很有用。

测试一种看起来与您类似的情况,以下对我有用(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 pre- release,因为遇到了以下错误:Error #2F067065 - "ess signing certificate error" when validating timestamp reply,该错误未包含此修复程序在1.1.0中。