web-dev-qa-db-ja.com

プログラムで新しいキーストアを作成するにはどうすればよいですか?

Javaで新しいキーストアをプログラムで作成しようとしています。次のコード:

KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.setCertificateEntry("alias", cert);

初期化されていないKeyStore例外をスローします。

54
Καrτhικ

キーストアは、作成後にロードする必要があります。 loadメソッドは、読み込むFileInputStreamを要求しますが、nullを指定すると、空のKeyStoreがロードされます。

このリンク を参照してください

53
charisis

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();

これがお役に立てば幸いです。詳細情報をご覧ください こちら

69
Assaf Gamliel

私はこのコードを使用しますが、機能します。

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;
}
4
Jay
 // 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;
0