You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ExternalSigningSupport.sign后PDF签名无效问题排查

PDFBox 3.0外部签名后签名无效的关键遗漏步骤
  • 校验哈希算法一致性
    生成PKCS#7时使用的哈希算法(如SHA-256)必须和PDFBox签名配置的DigestAlgorithm完全匹配。比如初始化PdfSigner时指定的算法要和签名服务生成PKCS#7的算法一致,否则Acrobat会因哈希不匹配判定签名无效。
  • 正确转换PKCS#7编码
    提前准备的PKCS#7十六进制字符串,必须先转成二进制字节数组再传入ExternalSigningSupport.sign,不能直接用字符串转UTF-8或其他编码的字节,编码错误会直接损坏签名数据。
  • 确保待签名字节完整
    调用ExternalSigningSupport.getContent获取的待签名字节流,必须完整用于生成PKCS#7的签名哈希。如果生成PKCS#7时用的不是这部分原始字节的哈希,签名无法匹配文档内容,导致验证失败。
  • 配置正确的签名字典属性
    签名时必须正确设置签名字典的核心属性:/Filter设为Adobe.PPKLite,/SubFilter设为adbe.pkcs7.detached(分离式签名场景)。属性不匹配会让Acrobat无法正确解析签名逻辑。
  • 禁止签名后修改文档
    签名完成输出PDF后,不能对文件做任何后续修改(包括添加注释、调整元数据等),哪怕微小改动都会被Acrobat检测到,标记文档已修改。
  • 验证PKCS#7本身的完整性
    检查PKCS#7十六进制字符串是否完整无截断,可将其转成字节数组后用OpenSSL工具验证结构是否合法,确认包含完整的证书链和有效签名值。

内容的提问来源于stack exchange,提问作者June Young Oh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 00:33:17