首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Adobe Acrobat时间戳错误

Adobe Acrobat时间戳错误
EN

Stack Overflow用户
提问于 2017-09-29 04:54:27
回答 1查看 1K关注 0票数 1

我正在测试一台RFC3161时间戳服务器,我正在使用Foxit Reader,Xolido Sign Desktop和Adobe Acrobat Pro DC来给PDF加时间戳。我可以用Foxit Reader和Xolido制作时间戳,但是Adobe Acrobat返回“error durante la firma. El nombre TSA no Xolido”,类似于“签名错误。TSA名称不匹配”。我已经搜索和TSA服务器名称在Adobe配置中是任何你想要的,我已经测试了证书的主题,只是常用的名称,等服务器返回证书主题作为TSA名称在时间戳响应,但它似乎是ok的。我不知道为什么Adobe会这么说,而Foxit和Xolido都没问题。

I added a FoxitReader Screen after validate the timestamp.

Foxit Reader对话框显示“签名有效。由TimestampTest签名。文档自签名以来未被修改。签名是来自安全时间的文档时间戳等。”

PDF timestamp example with Foxit Reader

EN

回答 1

Stack Overflow用户

发布于 2017-10-09 20:15:51

好吧,我终于解决了这个问题。我使用OpenSSL发现了同样的"tsa name mismatch“错误,并且阅读OpenSSL源代码时发现,这是TSA名称和时间戳令牌中的证书主题之间的本地比较。我的服务器正在使用BouncyCastle,当您从TSAName创建TSAName时,由于“标准的事情”,它颠倒了de subject RDN(例如,它交换了C=Foo、O=SomeOrg等),因为TSA名称是GeneralName对象,而不是X500Name对象。

我颠倒了主题,然后创建了令牌TSA名称,现在Openssl和Adobe都验证了ok。

在我现在拥有的服务器中:

代码语言:javascript
复制
tsTokenGen.setTSA(new GeneralName(reverseX500Name(new X500Name(tsuName))));

public static X500Name reverseX500Name(final X500Name name) {
    RDN[] orig = name.getRDNs();
    int n = orig.length;
    RDN[] _new = new RDN[n];
    for (int i = 0; i < n; i++) {
        _new[i] = orig[n - 1 - i];
    }
    return new X500Name(_new);
}

OpenSSL等价错误是INT_TS_RESP_VERIFY_TOKEN,它可以在ts_rsp_verify.c第459行(与OpenSSL版本相关的行)抛出错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46478145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档