掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本文操作環(huán)境:Windows7系統(tǒng)、php7.1版、DELL G3電腦

如何解決php 簽名出錯(cuò)問(wèn)題?
問(wèn)題描述:
我正在使用 TCPDF 生成一個(gè) pdf 文檔并對(duì)其進(jìn)行簽名.TCPDF 本身只是調(diào)用 PHP 的 openssl_pkcs7_sign 函數(shù),這在我看來(lái)是基于 源代碼.
直到最近一切正常.然后我改變了證書提供者.我剛剛更新了私鑰、證書和證書鏈:
$pdf->setSignature(
$this->public_certificate_path,
$this->private_key_path,
$this->private_key_password,
$this->extra_certificates_path,
1);
我在 extra_certificates_path 文件中以 PEM 格式復(fù)制了新的根證書和中間證書.我使用 openssl 驗(yàn)證了這個(gè)文件,看起來(lái)不錯(cuò).
現(xiàn)在,當(dāng)我在 Adobe Reader 中打開已簽名的 PDF 時(shí),它會(huì)顯示以下錯(cuò)誤:
打開文件時(shí),它說(shuō)<塊引用> 此文件已損壞但正在修復(fù)中 上面的藍(lán)絲帶說(shuō)<塊引用> 認(rèn)證無(wú)效 當(dāng)我打開簽名面板時(shí),它顯示<塊引用> 由 %s 認(rèn)證 錯(cuò)誤詳情說(shuō)<塊引用> 此簽名中包含的格式或信息有錯(cuò)誤(支持信息:SigDict/Contents 非法數(shù)據(jù)) 當(dāng)我點(diǎn)擊"證書詳細(xì)信息"時(shí),沒有任何反應(yīng)?
解決辦法:
分析OP共享的示例文件可以理解問(wèn)題:嵌入到文檔中的簽名容器超出了原來(lái)為它預(yù)留的大小.
因此,解決方案是為簽名容器預(yù)留更多空間.

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流