7

Sun JRE 1.6 の KeyManagerFactory に問題があります。次のようなコードを使用して、p12 形式の証明書をアップロードして使用しています。

KeyStore keyStore = KeyStore.getInstance(PKCS12);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(SUN_X509);

InputStream certificateFile = getSSLCertificate();
String certificatePassword = getSSLCertificatePassword();
keyStore.load(certificateFile, certificatePassword);
keyManagerFactory.init(keyStore, certificatePassword);

このコードは、証明書のパスワードが存在する場合に正しく機能します。しかし、証明書のパスワードが null の場合 (つまり、証明書がパスワードで保護されていない場合)、keyManagerFactory.init 行からゼロ除算エラーが発生します。

なぜこれが起こっているのか誰にも分かりますか?パスワードなしで証明書を使用することはできませんか? ありがとう

4

2 に答える 2

3

これはバグです:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6415637

回避策は、パスワードを設定することです。

于 2010-09-06T11:42:50.407 に答える
3

PKCS12 には秘密鍵が含まれているため、常にパスワードが必要です。私はSunが誤ってこれを強制していると思います:)

すべてのキーストア API で、ストア キーと秘密キーにパスワードが必要です。構成やユーザーとの対話を本当に扱いたくない場合は、どこでもデフォルトのパスワード「changeit」を使用してください。

于 2009-11-29T00:55:04.557 に答える