我需要将.cer
文件转换为.jks
文件。我看到了一些相关的问题,但没有看到我需要的解决方案。
我不需要将其添加到我的本地证书中,而是需要将其作为一个文件上传到服务器上。同时我也只需要进行一次转换,而不是通过编程实现。这篇文章Converting .cer to .jks using java中的作者说他已经成功地完成了转换,但由于我没有足够的声望,无法对他的最后回复进行评论,也无法给他发送私人消息来询问。
因此,如果有人知道一个简单的方法来完成此操作,我会很高兴听取建议。
我需要将.cer
文件转换为.jks
文件。我看到了一些相关的问题,但没有看到我需要的解决方案。
我不需要将其添加到我的本地证书中,而是需要将其作为一个文件上传到服务器上。同时我也只需要进行一次转换,而不是通过编程实现。这篇文章Converting .cer to .jks using java中的作者说他已经成功地完成了转换,但由于我没有足够的声望,无法对他的最后回复进行评论,也无法给他发送私人消息来询问。
因此,如果有人知道一个简单的方法来完成此操作,我会很高兴听取建议。
keytool
是随JDK的安装一同提供的(在 bin
文件夹中):
keytool -importcert -file "your.cer" -keystore your.jks -alias "<anything>"
这将创建一个新的密钥库并仅向其中添加您的证书。
因此,您无法将证书转换为密钥库:您需要将证书添加到密钥库中。
为确保您需要的确实是这种"转换",请注意jks
文件是密钥库,一种用于存储多个证书并允许您使用Java安全API以编程方式检索它们的文件格式,而不是等效格式之间的一对一转换。
因此,如果您只想将该证书导入新的特定密钥库中,可以使用Keystore Explorer这个图形化工具来完成。您将能够像使用java终端工具keytool
一样修改密钥库和其中包含的证书(但更易于操作)。
keytool -import -v -trustcacerts \
-alias keyAlias \
-file server.cer \
-keystore cacerts.jks \
-keypass changeit
从密钥库中导出证书:
keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks
这对我非常有效。
首先,创建一个PKCS12密钥库:
openssl pkcs12 -export -in my-app-certificate.crt -inkey my-app-certificate-private.key -out my-app-keystore.p12 -name my-app
这将需要一个密码
-name
是密钥库中私钥条目的别名。
接下来,使用keytool命令将PKCS12密钥库转换为JKS密钥库:
keytool -importkeystore -srckeystore my-app-keystore.p12 -srcstoretype PKCS12 -destkeystore my-app-certificate.jks -deststoretype JKS
查看JKS文件内容:
keytool -v -list -keystore my-app-certificate.jks
这将要求输入创建PKCS12密钥库时输入的密码