一、生成服务器端证书

1、在cmd窗口执行命令:keytool -genkey -v -alias server -keyalg RSA -storetype PKCS12 -keystore c:\keystore\server.keystore,

密码随意,自己记住就行。
spring boot,https,双向ssl认证

二、生成客户端证书

1、在cmd窗口执行命令:keytool -genkey -v -alias test -keyalg RSA -storetype PKCS12 -keystore c:\keystore\test.p12,
spring boot,https,双向ssl认证
  密码随意,自己记住就行。

三、导出客户端证书

1、导出客户端证书公钥cer文件。

在cmd窗口执行命令,输入之前自己设置的密码:
spring boot,https,双向ssl认证
  keytool -export -alias test -keystore c:\keystore\test.p12 -storetype PKCS12 -rfc -file c:\keystore\test.cer

2、将客户端公钥导入服务器证书。

在cmd窗口执行命令,输入之前自己设置的密码:

keytool -import -v -file c:\keystore\test.cer -keystore c:\keystore\server.keystore

四、安装客户端证书

双击c:\keystore目录下的test.p12文件,点击下一步:
spring boot,https,双向ssl认证

再次点击下一步:
spring boot,https,双向ssl认证

输入生成证书时设置的密码,点击下一步:

spring boot,https,双向ssl认证

将证书文件存储为个人,点击下一步:

spring boot,https,双向ssl认证

点击完成:

四、添加springboot支持

1、将服务器证书文件server.keystore放到项目的根目录下

2、编辑application.yml文件

spring boot,https,双向ssl认证

3、启动项目,看到https则成功了。

五、测试

1、添加一个java的过滤器,加上一行代码,打好断点:

spring boot,https,双向ssl认证

2、用谷歌浏览器,访问一个过滤器拦截的接口,显示选择证书的选项,则表示个人ssl证书安装成功了:
spring boot,https,双向ssl认证

3、在过滤器的断点中查看是否已经获取到了客户端证书,如果能看到以下信息,则表示成功了:

spring boot,https,双向ssl认证

至此基于springboot的ssl双向认证已经完成了。

相关文章: