Java を使用して、外部から受け取った証明書を読み取ろうとしています。コードは次のエラーをスローしています。
java.lang.RuntimeException: java.security.cert.CertificateException: 初期化できません、java.io.IOException: DerValue コンストラクターに余分なデータが渡されました
コード:
FileInputStream ksfis = new FileInputStream(this.getCertificateFile());
ksbufin = new BufferedInputStream(ksfis);
certificate = (X509Certificate)
CertificateFactory.getInstance("X.509").generateCertificate(ksbufin);
問題がコードにないことを確認するために、自己署名証明書を作成してコードで使用したところ、問題なく動作しました。システム キー チェーンに両方の証明書をインストールしましたが、どちらも有効です。Mac と Java 1.6 を使用しています。
外部パーティ証明書をロードするときに上記の例外が発生する理由は何ですか? 転送中に破損したと思いますか?もしそうなら、それはローカルシステムで有効として表示されるべきではありませんよね?