【问题标题】:java keystore file limitationsjava keystore 文件限制
【发布时间】:2012-08-25 11:08:55
【问题描述】:

我为我的 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());

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

【问题讨论】:

    标签: java security keystore digital-certificate


    【解决方案1】:

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

    【讨论】:

    • 但是我读到了这个question,虽然我使用的不是tomcat,而是glassfish,但我很想知道限制是linux还是java keystore。
    • 有链接说明keystore文件规范吗?
    • 我不认为它说明了密钥库中证书数量的限制
    • 那我想这样我可以在一个密钥库文件中存储超过 5000 个密钥,是吗?
    【解决方案2】:

    我假设您指的是 SunJSSE 提供商提供的PKCS12 keystore type。这是PKCS #12 standard 的实现,因此您可以像查看任何 PKCS #12 文件一样查看它。

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

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

    【讨论】:

      【解决方案3】:

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

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

      更新:
      您的问题与您链接到的帖子完全无关。 那个的问题是太多的http-connector线程访问了keystore文件。这是一个线程问题。与您的问题无关。

      【讨论】:

      • 现在我正在我的软件中进行测试,我能够毫无问题地加载 10 多个 pfx 证书,然后分配一个别名来获取和使用。
      • 仓库有一个主密钥,每个密钥分别有一个私钥,我已经记录在另一个安全的地方了。
      • pkcs12 已加密,例如使用密码1234。您是说您有10 个私钥条目,并且对于每个别名,您使用了不同的密码(来自1234 和彼此)?例如。 567,789 等等?
      • 没错,在pwd.toCharArray()指示的代码中可以看到
      • 你在使用 Bouncy Castle 吗?如果我记得 SUN 的提供者 not 是否允许你设置不同的密码。另外你的用例是什么?你在做什么不是(AFAIK ) 常见做法Traditionally a PKCS#12 file contains a private key, its corresponding certificate and one or more CA certificates, it can also contain a MAC for integrity testing.(来自drh-consultancy.demon.co.uk/pkcs12faq.html)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多