PDF 中嵌入的签名容器存在一些问题。
您的 PDF 是 1.5 版,签名使用子过滤器ETSI.CAdES.detached。因此,嵌入式签名容器应符合 ETSI EN 319 142-1(PAdES 构建块),该标准也指 ETSI EN 319 122-1(CAdES 构建块)。但也有偏差:
首先,CMSVersion 应设置为 1 或 3 (CAdES 4.4)。但在你的情况下,它设置为 5。
然后 SignedData.crls 包含条目,特别是其他类型的条目。在 PAdES 的情况下,无论如何都不应使用此字段,尤其是不应使用此类条目。实际上这个条目是上面提到的无效 CMSVersion 的原因:如果 SignedData.crls 包含一个类型为 other 的条目,则 RFC 5652 需要版本 5。
签名容器的 SignerInfo 包含签名时间签名属性。对于 PAdES BASELINE 签名 (PAdES 6.3),这是明确禁止的。
它还包含一个 cmsAlgorithmProtection 签名属性。虽然没有明确禁止,但此属性不在 PAdES (PAdES 5.2) 中可能使用的属性列表中。
此外,嵌入式证书中至少存在一个问题:其中一个具有一长串扩展密钥用法,timeStamping 就是其中之一。但是这种扩展的密钥用法只能单独使用。
这是我停止寻找更多问题的地方,因此列表可能不完整。您可能应该从使用不太复杂的签名容器开始,然后(如果可行)尝试一一添加额外的功能,以检查它们是否意味着 Adobe Reader 出现问题。
顺便说一句,这样的问题实际上可能是由于 Adobe Reader 不支持您签名中使用的某些算法;Adobe Reader 支持的加密算法列表非常短,不支持欧盟允许用于合格签名的一些算法。