通过 LetEncrypt 或其他平台申请了 SSL 证书后,其会保存在 /etc/letsencrypt/live/{domain}
目录下(是一个 link,指向 ../../archive/{domain}/cert1.pem
)。
它是 pem
格式的,如果在 SpringBoot 项目中直接配置证书,是不能够直接使用的,需要将其转成 jks
格式。
需要用到的工具:
- openssl
- keytool
转换过程如下:
第一步:从上面的目录中找到以下两个文件:fullchain.pem
和 privkey.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 -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