本文介绍了如何使用OpenSSL和Keytool工具进行证书格式转换,具体包含以下主题:(1)使用OpenSSL将证书从PEM转换到PFX,(2)使用Keytool将证书从PFX转换到JKS。
说明
您也可以使用证书中心提供的证书格式转换工具进行证书格式转化。
本教程使用的环境如下:
操作系统:Ubuntu 22.04 64位
证书工具:
示例证书及私钥:
ssl.example.com.pem
:证书文件。ssl.example.com.key
:私钥文件。示例证书及私钥存储在/usr/local/ssl/certs
。
本章节介绍如何使用OpenSSL将现有PEM证书转换成PFX证书。
开始之前,您需要准备以下文件:
要进行格式转换,我们将使用以下OpenSSL命令:pkcs12
。
该命令的基础语法如下:
openssl pkcs12 -export -in <cert.pem> -inkey <cert.key> -out <cert.pfx>
变量说明:
<cert.pem>
:源证书文件的名称。<cert.key>
:源私钥文件的名称。<cert.pfx>
:要写入PFX证书的文件的名称。关于pkcs12
命令的更多说明,请参见OpenSSL官方文档。
# 进入证书文件所在目录 cd /usr/local/ssl/certs # 生成PFX证书 openssl pkcs12 -export -in ssl.example.com.pem -inkey ssl.example.com.key -out ssl.example.com.pfx # 命令提示 Enter Export Password: Verifying - Enter Export Password:
运行pkcs12
命令后,根据命令提示,为PFX证书设置一个密码。
说明
请记住您为PFX证书设置的密码。安装PFX证书时,您需要提供相应的证书密码。
完成操作后,您可以在当前路径下查看新生成的PFX证书。
本章节介绍如何使用Keytool将现有PFX证书转换成JKS证书。
准备一个PFX证书。您需要知道该PFX证书的密码。
要进行格式转换,我们将使用以下Keytool命令:keytool -importkeystore
。
该命令的基础语法如下:
keytool -importkeystore -srckeystore <cert.pfx> -srcstoretype pkcs12 -destkeystore <cert.jks>
变量说明:
<cert.pfx>
:源PFX证书的名称。<cert.jks>
:要写入JKS证书的文件的名称。关于keytool命令的更多说明,您可使用keytool --help
进行查询。
# 进入证书所在目录 cd /usr/local/ssl/certs # 生成JKS证书 keytool -importkeystore -srckeystore ssl.example.com.pfx -srcstoretype pkcs12 -destkeystore ssl.example.com.jks # 命令提示 Importing keystore ssl.example.com.pfx to ssl.example.com.jks... Enter destination keystore password: Re-enter new password: Enter source keystore password: Entry for alias 1 successfully imported. Import command completed: 1 entries successfully imported, 0 entries failed or cancelled
运行importkeystore
命令后,根据命令提示,为JKS证书设置一个密码。您需要输入新密码两次,然后还需要输入源PFX证书的密码。
说明
请记住您为JKS证书设置的密码。安装JKS证书时,您需要提供相应的证书密码。
完成操作后,您可以在当前路径下查看新生成的JKS证书。