生成p12证书步骤

生成服务端私钥key

openssl genrsa -out server.key 1024

生成csr证书

openssl req -new -key server.key -out server.csr

后者合并一和二步

openssl req -nodes -newkey rsa:2048 -keyout server.key -out server.csr

生成crt证书

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

转换成pem证书(crt文件和key文件合并)

cat server.crt server.key>server.pem

生成p12证书

openssl pkcs12 -export -in server.pem -inkey server.key -out server.p12 -name tomcat

如果第二步设置了密码 这步需要输入密码才能生成p12证书

生成的p12转换为jks

keytool -importkeystore -srckeystore server.p12 -destkeystore server.jks -srcstoretype pkcs12

参考博客:

https://www.cnblogs.com/efzju/p/4966519.html

https://developer.aliyun.com/article/611522 –重点

https://blog.csdn.net/zwc609906/article/details/93887339

https://www.cnblogs.com/shuiche/p/16655444.html –https证书的验证流程

https://www.cnblogs.com/lgxdev/p/16666624.html –生成pem证书

项目集成中遇到过的问题

项目更新证书的替换p12文件后服务启动不起来的问题:

ssl证书打开方式:

点击chrome证书无效

就会显示证书的有效期:

使用java命令可以直接生成项目需要的p12证书:

1
2
3
4
5
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore2.p12 -validity 365
#输入密钥口令
#确认密钥口令
#继续输入证书颁布的相关信息
#完成之后会在对应目录生成keystore2.p12文件,将此文件放入到项目的根目录位置即可.

springboot对应证书的配置项

1
2
3
4
5
server.tomcat.uri-encoding=UTF-8
server.ssl.key-store=keystore2.p12
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12
server.ssl.key-alias=tomcat

项目对应配置如图,启动项目

浏览器的证书已被替换更新,如图:

通过pem文件生成p12的证书文件指令

1
2
3
4
openssl pkcs12 -export -in server.pem -inkey server.key -out keystore.p12 -name tomcat
#输入密码
#再次确认输入密码
#生成出来的.p12文件放到项目的jar包上即可,之前是因为-name的名字和配置文件里面的key-alias值不一致导致的服务启动报错的问题,只要一致即可启动成功

对应证书如图,这个是昨天上面一系列指令生成的ssl证书:

参考博客:

https://blog.csdn.net/RO_wsy/article/details/51319963 –发现了可能是因为别名引起的原因