php エディタ Xinyi が紹介します: Java 開発では、ESig DSS 署名検証は常に「INDETERMINATE」を返します。これは、署名が不完全であるか検証できないことが原因である可能性があります。この問題には通常、デジタル証明書、署名アルゴリズムなどが関係しており、署名データと検証プロセスを注意深く検査する必要があります。解決策には、署名アルゴリズム、証明書の有効性、署名データの整合性などをチェックして、すべての手順が正しいことを確認することが含まれます。考えられる問題を慎重にトラブルシューティングすることで、このよくある署名検証の問題を解決し、データのセキュリティとシステムの整合性を確保できます。
欧州委員会主催のデジタル署名サービス (DSS) ライブラリ 5.12.1 を使用して、デジタル署名 pdf および xml の電子署名を検証しようとしています。
私が使用したコードは
です リーリーDSS ドキュメントの PDF に示されているとおり。私のアプリケーションは常に no_certificate_chain_found 指示を不確定のサブ指示とともに取得します (証明書チェーンの証明書要素に表示されます)。トラストアンカーが見つかりません。署名検証にサンプル アプリケーション 5.12.1 を使用し、同じドキュメントを検証しようとすると、予期した total_passed というメッセージが表示されます。私のアプリケーションはインターネットにアクセスできます。私が何を間違えたのでしょうか? ありがとう!
サンプル アプリケーションとコードには違いがあります。
サンプル アプリケーションには、事前構成された信頼できるルート リスト (EU LOTL) が付属しています。
コードには空の CommonTrustedCertificateSource
(つまり、信頼できる証明書がありません)
参照DSS FAQ
したがって、いくつかの証明書を CommonTrustedCertificateSource
に追加する必要があります。作成した署名のみを検証する場合は、CA ルート/署名証明書を信頼できるソースに追加します。サードパーティの署名を検証する場合、解決策はさらに複雑になります。たとえば、
以上がESig DSS 署名検証は常に INDETERMINATE を返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。