证书 pem 转 jks

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了证书 pem 转 jks相关的知识,希望对你有一定的参考价值。

参考技术A 通过 LetEncrypt 或其他平台申请了 SSL 证书后,其会保存在 /etc/letsencrypt/live/domain 目录下(是一个 link,指向 ../../archive/domain/cert1.pem )。

它是 pem 格式的,如果在 SpringBoot 项目中直接配置证书,是不能够直接使用的,需要将其转成 jks 格式。

需要用到的工具:

转换过程如下:

第一步:从上面的目录中找到以下两个文件: fullchain.pem 和 privkey.pem ,确保其可读;
第二步:利用 openssl 指令其转成 .p12 格式证书,指令如下:

第三步:使用 keytool 工具将 .p12 格式证书转成 .jks 格式证书,指令如下:

执行完 keytool 指令后,我这边有如下警告:

根据警告内容执行其中的命令:

以上完成了 pem 证书转成 jks 证书的过程,转换后的 jks 文件可直接配置到 SpringBoot 项目中。

附上配置内容(yml):

从jks证书中提取公钥和私钥(jks证书转pem证书)

参考技术A jks转为p12,然后再将p12转为pem

AndroidStudio使用keystore文件对APK进行签名,但快应用中要求使用PEM文件对RPK进行签名。

现有demo.jks,证书密码为demopwd,转换成pem之后依然使用demopwd作为密码。

提取公钥:

切换到jks证书的存储路径,执行如下命令:keytool -list -rfc -keystore demo.jks -storepass demopwd

如果出现下图的错误提示:

那么请把demo.jks文件拷贝到与keytool.exe文件同目录下,keytool在jdk的bin目录下,拷贝之后cmd切换到bin目录重新执行刚才的命令

然后就能在命令行中看到打印的公钥内容(也即Certificate),如下图

提取私钥:

jks文件中的私钥不能直接得到,需要通过openssl将jks文件转换成pkcs12格式后再进行提取。

执行如下命令将demo.jks文件转换成demo.pfx文件:

keytool -v -importkeystore -srckeystore demo.jks -srcstoretype jks -srcstorepass demopwd -destkeystore demo.pfx -deststoretype pkcs12 -deststorepass demopwd -destkeypass demopwd

命令执行完成后目录下就会多了一个demo.pfx文件。

然后,执行如下命令便可以将demo.pfx的私钥导出:

openssl pkcs12 -in demo.pfx -nocerts -nodes -out demo.key

输入密码后会生成一个demo.key文件,打开查看内容

以上是关于证书 pem 转 jks的主要内容,如果未能解决你的问题,请参考以下文章

将证书从 pem 转换为 jks

如何将信任证书从 .jks 转换为 .pem?

签名证书keystore,jks,pk8,x509.pem

签名证书keystore,jks,pk8,x509.pem

jks 证书文件的生成步骤

java认证与证书