一、背景介绍
项目需要Springboot作为服务端与客户端之间进行HTTPS通信,需要实现SSL双向认证。当前所用的证书相关文件有:ca.crt、ca.key、client.crt、client.key、server.crt、server.key
二、实现步骤
1、对服务端证书和私钥进行打包处理,打包时需要输入密码,密码在application.xml配置文件中会用到(使用到openssl工具,没有的话自行下载)
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12
2、将客户端证书导入到步骤一生成的server.p12文件中
keytool -import -V file client.crt -keystore server.p12
3、将server.p12文件放到resources目录下
4、在application.xml添加SSL双向认证配置
server:
port: 10021
ssl:
#服务端证书路径
key-store: classpath:server.p12
#证书密码,即步骤一中输入的密码
key-store-passwd: 123456
#证书类型
key-store-type: JKS
#可信任的客户端证书
trust-store: classpath:server.p12
#密码,即步骤一中输入的密码
trust-store-password: 123456
trust-store-provider: SUN
trust-store-type: JKS
#是否需要进行认证
client-auth: need
至此,项目配置完成,可在postMan进行https通信测试,postMan需先添加客户端证书:client.crt和client.key