证书 pem 转 jks

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

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

需要用到的工具:

  • openssl
  • keytool

转换过程如下:

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

openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out {name}.p12
  • 其中 {name} 替换成自己想要的名称;
  • 执行该指令后会提示输入密码和验证密码,请牢记密码;

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

keytool -importkeystore -deststorepass '123456' -destkeypass '123456' -destkeystore {name}.jks -srckeystore {name}.p12 -srcstoretype PKCS12 -srcstorepass '123456'
  • 指令中的 {name} 是你上一条命令中重命名的文件名;
  • 指令中的 '123456' 是密码,总共有三个,可以自行修改,请牢记(为了方便记忆可将三个密码设置为一样的)

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

执行 keytool 命令后的提示

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

keytool -importkeystore -srckeystore {name}.jks -destkeystore {name}.jks -deststoretype pkcs12

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

附上配置内容(yml):

server:
  ssl:
    enabled: true
    key-store: path/{name}.jks  # jks 文件路径
    key-store-password: 123456 # 密码
    key-store-type: PKCS12
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容