Javaで新しいキーストアをプログラムで作成しようとしています。次のコード:
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.setCertificateEntry("alias", cert);
初期化されていないKeyStore例外をスローします。
キーストアは、作成後にロードする必要があります。 loadメソッドは、読み込むFileInputStreamを要求しますが、nullを指定すると、空のKeyStoreがロードされます。
このリンク を参照してください
Java)で新しいキーストアを作成するには、最初にキーストアファイルを作成し、store(FileOutputStream, char[])
メソッドを使用して保存する必要があります。
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
char[] password = "some password".toCharArray();
ks.load(null, password);
// Store away the keystore.
FileOutputStream fos = new FileOutputStream("newKeyStoreFileName");
ks.store(fos, password);
fos.close();
これがお役に立てば幸いです。詳細情報をご覧ください こちら 。
私はこのコードを使用しますが、機能します。
public static KeyStore createKeyStore() throws Exception {
File file = new File("/Users/keyserverstore.keystore");
KeyStore keyStore = KeyStore.getInstance("JKS");
if (file.exists()) {
// if exists, load
keyStore.load(new FileInputStream(file), "123456".toCharArray());
} else {
// if not exists, create
keyStore.load(null, null);
keyStore.store(new FileOutputStream(file), "123456".toCharArray());
}
return keyStore;
}
// load the keystore
KeyStore p12 = KeyStore.getInstance("pkcs12");
p12.load(new FileInputStream("KEYSTORE.p12"), "passwd".toCharArray());
// load the private key entry from the keystore
Key key = p12.getKey("mykey", "passwd".toCharArray());
PrivateKey privKey = (PrivateKey) key;