ホームページ > バックエンド開発 > PHPの問題 > PHP署名エラーの問題を解決する方法

PHP署名エラーの問題を解決する方法

藏色散人
リリース: 2023-03-15 06:30:02
オリジナル
2246 人が閲覧しました

php 署名エラーは、ドキュメントに埋め込まれている署名コンテナが、元々その署名コンテナ用に予約されていたサイズを超えているために発生します。解決策は、署名コンテナ用にさらに多くのスペースを予約することです。

PHP署名エラーの問題を解決する方法

この記事の動作環境: Windows 7 システム、PHP バージョン 7.1、DELL G3 コンピューター

問題の解決方法php 署名エラー?

問題の説明:

TCPDF を使用して PDF ドキュメントを生成し、それに署名しています。TCPDF 自体は、PHP の openssl_pkcs7_sign 関数を呼び出すだけです。これはソース コードに基づいていることがわかります。

最近まではすべて正常に動作していました。その後、証明書プロバイダーを変更しました。秘密キー、証明書、証明書チェーンを更新したところです:

$pdf->setSignature(
                $this->public_certificate_path, 
                $this->private_key_path, 
                $this->private_key_password, 
                $this->extra_certificates_path, 
                1);
ログイン後にコピー

追加しましたextra_certificates_path ファイルの次の内容は、新しいルート証明書と中間証明書を PEM 形式でコピーしました。openssl を使用してファイルを検証しましたが、正常に見えます。

署名された PDF を Adob​​e Reader で開くと、次のエラーが表示されます:

打开文件时,它说<块引用>
此文件已损坏但正在修复中
上面的蓝丝带说<块引用>
认证无效
当我打开签名面板时,它显示<块引用>
由 %s 认证
错误详情说<块引用>
此签名中包含的格式或信息有错误(支持信息:SigDict/Contents 非法数据)
当我点击"证书详细信息"时,没有任何反应?
ログイン後にコピー

解決策:

OP によって共有されたサンプル ファイルを分析すると、問題が理解できます。ドキュメントに埋め込まれた署名コンテナーが、元々そのために予約されていたサイズを超えています。 .

したがって、解決策は、署名コンテナー用にさらに多くのスペースを確保することです。

推奨される学習: 「PHP ビデオ チュートリアル

以上がPHP署名エラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート