php-Signaturfehler liegt daran, dass der im Dokument eingebettete Signaturcontainer die ursprünglich dafür reservierte Größe überschreitet. Die Lösung besteht darin, mehr Platz für den Signaturcontainer zu reservieren.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Wie löse ich das Problem mit dem PHP-Signaturfehler?
Problembeschreibung:
Ich verwende TCPDF Um ein PDF-Dokument zu generieren und es zu signieren, ruft TCPDF einfach die Funktion „openssl_pkcs7_sign“ auf, die meiner Meinung nach auf der Grundlage des Quellcodes funktioniert. Bis vor Kurzem habe ich den privaten Schlüssel geändert. Zertifikat und Zertifikatskette:
$pdf->setSignature( $this->public_certificate_path, $this->private_key_path, $this->private_key_password, $this->extra_certificates_path, 1);
Ich habe die neuen Stamm- und Zwischenzertifikate im PEM-Format in die Datei extra_certificates_path kopiert und sie sieht gut aus.
Wenn ich jetzt das signierte PDF in Adobe Reader öffne, wird es angezeigt der folgende Fehler:
打开文件时,它说<块引用> 此文件已损坏但正在修复中 上面的蓝丝带说<块引用> 认证无效 当我打开签名面板时,它显示<块引用> 由 %s 认证 错误详情说<块引用> 此签名中包含的格式或信息有错误(支持信息:SigDict/Contents 非法数据) 当我点击"证书详细信息"时,没有任何反应?
Eine Analyse der vom OP freigegebenen Beispieldatei kann das Problem verstehen: Der in das Dokument eingebettete Signaturcontainer überschreitet die ursprünglich dafür reservierte Größe.
Die Lösung ist also um mehr Platz für den Signaturcontainer zu reservieren.
Empfohlenes Lernen: „
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonSo lösen Sie das Problem mit dem PHP-Signaturfehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!