【问题标题】:Generate PKCS12 file using Java使用 Java 生成 PKCS12 文件
【发布时间】:2012-01-15 03:55:42
【问题描述】:

我需要使用 Java 生成一个 PKCS12 文件。 实际上,我需要使用 openssl 自动生成以下证书(ca 是之前创建的,并没有假装自动创建):

openssl genrsa -out client.key 2048

openssl req -new -key client.key -out client.csr

openssl ca -keyfile ca.key -cert ca.crt -out client.crt -policy policy_anything -infiles client.csr

openssl pkcs12 -export -in client.crt -inkey client.key -out client.p12 -name client

我想知道是否可以在不使用 Bouncycastle 或类似库的情况下执行此操作,仅使用 JCE,因为我没有找到任何与 PKCS12 生成相关的信息。

【问题讨论】:

    标签: java jce pkcs#12


    【解决方案1】:

    创建 PKCS#12 很容易 - 可以通过编写 KeyStore "PKCS12" 实例来完成,添加证书和密钥,然后使用 store(...) 方法将其保存到文件中。

    剩下的就有点问题了。

    【讨论】:

    • 感谢罗伯特的回答,问题是我不使用密钥库。我只是在 Web 中注册后创建了这个 pkcs 证书,以控制新用户创建对其他 URL 的访问。所以,我需要重现注释过的 openssl 命令,它只创建一个 pkcs,没有密钥库。
    • 从 Java 的角度来看,PKCS#12 文件是一个 KeyStore。 Java 包含许多 KeyStore 实现,例如 PKCS#12 和 JKS。两者的访问方式完全相同 - 只需使用 java.security.KeyStore.getInstance("PKCS12");
    【解决方案2】:

    创建密钥对和证书没有问题,但 JCE 没有用于签名的 API(这绝对是,我花了很多时间搜索它)。 Bouncycatle lib 是一个正确的选择。

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多