私は外部から受け取った証明書をJavaで読み取ろうとしています。コードは次のエラーを投げている:JavaでX.509証明書を読む
java.lang.RuntimeException: java.security.cert.CertificateException: Unable to initialize, java.io.IOException: extra data given to DerValue constructor
コード:
FileInputStream ksfis = new FileInputStream(this.getCertificateFile());
ksbufin = new BufferedInputStream(ksfis);
certificate = (X509Certificate)
CertificateFactory.getInstance("X.509").generateCertificate(ksbufin);
は問題がコードで、私は自己署名証明書を作成したコードとそれを使用していなかったことを確認するには、それはうまくいった。私は両方の証明書をシステムキーチェーンにインストールしており、どちらも有効です。私はMacとJava 1.6を使用しています。
外部パーティ証明書を読み込む際に上記の例外が発生する理由は何ですか?転送中に破損していると思いますか?もしそうなら、それはローカルシステム上で有効ではないはずですか?
テキストエディタで開くと、テキストまたはゴミが表示されますか? –
私はテキストエディタに私の鉱山を開いて、その完全なガーベッジと第三者がBEGIN証明書とEND証明書のテキスト内にきちんと並べられています。これらの両端の内容は==(base64 encoded?) – Java
- ---- START CERTIFICATE ----- \ n base 64 junk \ n ----- END CERTIFICATE ----- '私は推測しますか? –