gpt4 book ai didi

java 将 pfx 转换为可以导入默认 keystore 的格式

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:44 27 4
gpt4 key购买 nike

我正在使用以下代码以编程方式将证书加载到默认 keystore 中

KeyStore kStore = KeyStore.getInstance(KeyStore.getDefaultType());
java.io.FileInputStream fis = new FileInputStream(keystorePath);
kStore.load(fis, new String(keystorePass).toCharArray());
fis.close();

我有一个 pfx 格式的第三方证书。如果我尝试加载它,它会因格式无效而失败。

如果我更新为使用以下它有效。但我不想更改代码。

KeyStore keystore = KeyStore.getInstance("PKCS12");  

如何将 pfx 文件转换为以下格式可以接受的格式

KeyStore kStore = KeyStore.getInstance(KeyStore.getDefaultType());    

最佳答案

证书的东西从来都不是简单的。您需要 openssl(Cygwin 版本适用于 Windows)将 pfx/p12 文件转换为 pem 文件,然后您可以从 pem 创建证书。最后,您可以使用 Java keytool 程序将证书转换为 JKS 格式(KeyStore 默认)。

将 pfx 转换为 pem:

openssl pkcs12 -in whatever.pfx -out whatever.pem -clcerts -nokeys

从 pem 文件创建 X509 证书:

openssl x509 -in whatever.pem -inform PEM -out whatever.crt -outform DER

使用 Java 的 keytool 从证书创建 JKS 文件:

keytool -import -trustcacerts -keystore whatever.jks -storepass somepassword -noprompt -file whatever.crt -alias localhost

请注意 -alias 可以是您要用于此证书的任何唯一名称。惯例是使用您网站的 URL。

现在,您应该能够在代码中使用 KeyStore 实例加载 JKS 文件。也许只更改 Java 代码以使用 PKCS12 实例更容易?

关于java 将 pfx 转换为可以导入默认 keystore 的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9046676/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com