如何将JKS证书转成PEM证书

作者 胡萝虎 日期 2021-01-19
如何将JKS证书转成PEM证书

今天在七牛上配置自定义域名,在开启https时,需要配置SSL证书。在此之前,我已经申请好了SSL证书,格式为JKS,但是七牛只支持上传pem格式的证书(不知道咋想的…)。没辙,那就从JKS证书里把证书提取出来吧,下面开始操作

1. 设置密码

如果jks密钥库已经设置了密码,此步骤直接跳过。如果没有设置,需要先设置密码,否则后面第三步会报错。

执行以下命令:

keytool -keystore <证书库文件> -storetype JKS -storepass <证书库密码> -keypasswd -alias <证书别名> -keypass <原keypass密码> -new <新keypass密码,与keystore密码一致>

2. 提取公钥

打开终端,cd证书目录,输入以下命令

keytool -list -rfc -keystore <JKS密钥库文件> -storepass <JKS密钥库密码>

执行完成后,将打印出以下内容,其中从第一个*—–BEGIN CERTIFICATE—–到最后一个—–END CERTIFICATE—–*之前的内容即是证书中的公钥链,完整复制后,保存到其他地方即可。

image-20210119204117719

3. 提取私钥

接下来提取私钥,分两步操作。

  1. 先将JKS文件转成PKCS12格式,输入一下命令:
keytool -importkeystore -srckeystore <JKS密钥库文件> -srcstorepass <JKS密钥库密码> -destkeystore <转换后的密钥库文件,以.p12结尾> -deststoretype pkcs12

执行完成后,在目录下面将得到一个新的文件,以*.p12结尾,比如名称为new.p12*

  1. 从PKCS12格式的密钥库中导出私钥,输入以下命令:
openssl pkcs12 -in <PKCS密钥库文件> -nocerts -nodes -out <私钥文件,以.key结尾>

执行完成后,在目录下会得到一个新的文件,打开后里面就是私钥啦。

4. 使用公钥和私钥

得到公钥和私钥后,安装七牛操作界面的提示,分别填入我们上面获取的公钥内容(注意要复制完整的证书链)和私钥内容即可。

“扫一扫接着看”