为2个springboot工程开启进行SSL进行交互的认证步骤
//哪个犬玩意举报我侵权的?
一、认证步骤
1、 为服务器生成证书
keytool -genkey -v -alias testServer -keyalg RSA -keystore E:\ssl\testServer.p12 -validity 36500
2、 为客户端生成证书
keytool -genkey -v -alias testClient -keyalg RSA -storetype PKCS12 -keystore E:\ssl\testClient.p12 -validity 36500
3、 将客户端证书导出为CER文件
keytool -export -alias testClient -keystore E:\ssl\testClient.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:\ssl\testClient.cer
4、 将客户端CER文件导入到服务器的证书库
keytool -import -v -file E:\ssl\testClient.cer -keystore E:\ssl\testServer.p12
5、 把服务器证书导出为CER文件
keytool -keystore E:\ssl\testServer.p12 -export -alias testServer -file E:\ssl\testServer.cer
6、 将CER文件导入到服务器的证书库
keytool -import -v -file E:\ssl\testServer.cer -keystore E:\ssl\testClient.p12
7、 工程修改
将p12格式的证书放入各自工程的resource目录下,(在 工程配置和代码修改后)执行maven clean(必要!),maven install重新打包或部署。
异常处理
出现SunCertPathBuilderException: unable to find valid certification path to requested target异常时,将证书导入到C:\Program Files\Java\jdk1.8.0_91\jre\lib\security\cacerts
执行:
keytool.exe -importcert -file E:/ssl/xxx.keystore(or p12) -keystore cacerts -storepass 123456
二、工程配置
yaml
server:
ssl:
key-store: classpath:testServer.p12(服务端为testClient)
key-store-password: 123456
key-password: 123456
key-alias: testClient
key-store-type: JKS