Pdf Adobe Acrobat时间戳错误
我正在测试RFC3161时间戳服务器,我正在使用Foxit Reader、Xolido Sign Desktop和Adobe Acrobat Pro DC为PDF添加时间戳。我可以使用Foxit Reader和Xolido设置时间戳,但Adobe Acrobat返回“Error durante la firma.El nombre TSA no ocalize”,类似于“签名错误。TSA名称不匹配”。我已经搜索过了,Adobe config中的TSA服务器名称是您想要的,我已经使用证书的主题进行了准确的测试,只是使用了通用名称,等等。服务器在时间戳响应中将证书主题作为TSA名称返回,但似乎还可以。我不知道为什么Adobe说它、Foxit和Xolido都可以 Foxit Reader对话框显示“签名有效。由TimestampTest签名。文档自签名后未被修改。签名是来自安全时间等的文档时间戳。”Pdf Adobe Acrobat时间戳错误,pdf,adobe,trusted-timestamp,Pdf,Adobe,Trusted Timestamp,我正在测试RFC3161时间戳服务器,我正在使用Foxit Reader、Xolido Sign Desktop和Adobe Acrobat Pro DC为PDF添加时间戳。我可以使用Foxit Reader和Xolido设置时间戳,但Adobe Acrobat返回“Error durante la firma.El nombre TSA no ocalize”,类似于“签名错误。TSA名称不匹配”。我已经搜索过了,Adobe config中的TSA服务器名称是您想要的,我已经使用证书的主题进行
嗯,我终于解决了这个问题。我在使用OpenSSL时发现了相同的“tsa名称不匹配”错误,在阅读OpenSSL源代码时,我发现这是时间戳令牌中tsa名称和证书主题之间的本地比较。我的服务器正在使用BouncyCastle,当您从X500主题创建TSAName时,由于“标准事物”,它会反转de主题RDN(例如,它交换C=Foo、O=SomeOrg等),因为TSA名称是一个GeneralName对象,而不是X500名称对象 我反转主题,然后创建令牌TSA名称,现在Openssl和Adobe都验证ok 在服务器中,我现在有:
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);
}
tsTokenGen.setTSA(新的通用名称(reverseX500Name(新的X500Name(tsuName)));
公共静态X500名称反转X500名称(最终X500名称){
RDN[]orig=name.getRDNs();
int n=原始长度;
RDN[]_new=新RDN[n];
对于(int i=0;i
OpenSSL等效错误是INT_TS_RESP_VERIFY_令牌,它可以在TS_rsp_VERIFY.c第459行(与OpenSSL版本相关的行)中抛出de error。我假设TSA签名者证书或连接安全证书中存在问题。请分享样品进行分析。我不知道你想要什么样的样品。我只是用keystorexplorer和PFX证书生成器生成了很多证书。我下载了一些TSA证书,并与矿山进行了比较,更新了一些字段,但一切都是一样的。我已经扩展了KeyUsage=“timestamp”(Critical)、KeyUsage=“Digital Signature,Non-De抵赖”(Critical)、Basic Constraints=“Subject不是CA,路径长度约束:None”、Authority Key Id和Subject Key Id,就像其他TSA证书一样(例如)。也许我的服务器有问题,不是证书,但我不明白为什么foxit reader工作正常。“我不知道你想要什么样的样本。”-一个带有时间戳的示例PDF,可以观察到你描述的行为。屏幕截图没有帮助。请分享一个带有时间戳的PDF示例,您描述的行为可以被观察到。