0

我为我的 PFX 证书 ( PKCS#12 ) 创建了一个密钥库文件,但我需要知道一个密钥库文件 (JKS) 中可以存储多少密钥。

我目前正在按如下方式加载证书:

KeyStore oStore = KeyStore.getInstance("PKCS12");
oStore.load(new FileInputStream(AppConfig.get(AppConfig.SRC_KEY)), 
    "SECRET".toCharArray());
...
oStore.setKeyEntry(idAlias, privateKey, pwd.toCharArray(), chain);
oStore.store(new FileOutputStream(AppConfig.get(AppConfig.SRC_KEY)),  
    "SECRET".toCharArray());

我可以在此密钥库中存储的密钥和证书的数量是否有限制?

4

3 回答 3

1

AFAIK 密钥库可以持有的证书没有限制。

于 2012-08-30T16:54:53.580 回答
0

我假设您指的 是 SunJSSE 提供程序提供的PKCS12 密钥库类型。这是PKCS #12 标准的实现,因此您可以像查看任何 PKCS #12 文件一样查看它。

因此,我建议每个文件都包含一个私钥和证书。

如果您想存储许多带有证书的密钥,我建议您考虑使用普通的密钥库(而不是 PKCS #12 变体)。

于 2012-08-30T17:29:27.413 回答
0

我可以在此密钥库中存储的密钥和证书的数量是否有限制?

老实说,我不知道你是否真的可以在你的账户中存储超过 1 个私钥,PKCS12但即使你可以,这将是一个非常不寻常的用途,不推荐。
这些密钥库用作私有凭据的容器,并不意味着共享,如果您添加多个私钥及其相应的公钥和链,这基本上就是您将要做的事情。
这些容器通常具有访问它所需的加密密码,并且相同的密码用于私钥条目。因此,将多个私钥保存在同一个容器中并不是一个好选择,因为它们都将共享相同的密码。
可能有一个提供者(例如 Bouncy Castle)可以允许您设置不同的密码,但如果您打算使其可移植,即被任何应用程序使用,则该容器将完全无法使用,因为它不会期望您描述的内容。

更新:
您的问题与您链接到的帖子完全无关。这种情况下的问题是太多的 http-connector 线程访问了密钥库文件。这是一个线程问题。与你的问题无关。

于 2012-08-30T17:38:40.393 回答