Maison >développement back-end >Problème PHP >Comment résoudre le problème d'erreur de signature php
L'erreur de signature php est due au fait que le conteneur de signature intégré dans le document dépasse la taille initialement réservée. La solution est de réserver plus d'espace pour le conteneur de signature.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Comment résoudre le problème d'erreur de signature php ?
Description du problème :
J'utilise TCPDF pour générer un document pdf et le signer. TCPDF lui-même appelle simplement la fonction openssl_pkcs7_sign de PHP, qui me semble basée sur le code source
Tout fonctionnait bien jusqu'à récemment, j'ai juste changé de fournisseur de certificat. certificat et chaîne de certificats :
$pdf->setSignature( $this->public_certificate_path, $this->private_key_path, $this->private_key_password, $this->extra_certificates_path, 1);
J'ai copié les nouveaux certificats racine et intermédiaires au format PEM dans le fichier extra_certificates_path. J'ai vérifié le fichier à l'aide d'openssl et il a l'air bien.
Maintenant, lorsque j'ouvre le PDF signé dans Adobe Reader, il s'affiche. l'erreur suivante :
打开文件时,它说<块引用> 此文件已损坏但正在修复中 上面的蓝丝带说<块引用> 认证无效 当我打开签名面板时,它显示<块引用> 由 %s 认证 错误详情说<块引用> 此签名中包含的格式或信息有错误(支持信息:SigDict/Contents 非法数据) 当我点击"证书详细信息"时,没有任何反应?
Solution :
L'analyse de l'exemple de fichier partagé par l'OP permet de comprendre le problème : Le conteneur de signature intégré dans le document dépasse la taille initialement réservée pour celui-ci.
Donc, la solution C'est pour réserver plus d'espace pour le conteneur de signature.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!