最近更新时间:2022.11.03 20:34:32
首次发布时间:2022.11.03 20:34:32
本文档以 OpenSSL 和 Keytool 证书工具为例,介绍常用的证书格式转换方法。
本教程建立在以下环境基础上:
操作系统:Ubuntu 22.04 64 位
证书工具:
OpenSSL:OpenSSL 3.0.5
关于如何获取并安装 OpenSSL,请参见 OpenSSL官方网站。
如果您需要在 Windows 系统上安装 OpenSSL,请参见适用于 Windows 的 OpenSSL 安装包。
Keytool:随 Java 11.016 自动安装。
示例证书:
ssl.example.com.pem
:证书文件(PEM 编码)。
ssl.example.com.key
:私钥文件。
以上示例证书的存储路径:/usr/local/ssl/certs
。
本示例将基于已有的 PEM 证书,生成对应的 PFX 证书。
要生成 PFX 格式证书,您需要准备以下文件:
证书文件:需要包含完整的证书链,一般使用 .crt 或 .pem 扩展名。
您可以从证书中心控制台,下载其他服务器类型的证书压缩包。解压缩后,将会获得证书文件。
关于下载证书的具体操作,请参见下载证书。
私钥文件:一般使用 .key 扩展名。
本操作需使用以下 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 证书。
要将 PEM 证书转换成 JKS 格式,您必须先将 PEM 证书转换成 PFX 格式。
然后,您可以使用keytool -importkeystore
命令,将 PFX 格式证书转换成 JKS 格式。
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 证书。