SpringBoot项目配置https访问单项认证谷歌有效证书

单项认证&&双向认证

单向验证中,如果是你客户端,你需要拿到服务器的证书,并放到你的信任库中;如果是服务端,你要生成私钥和证书,并将这两个放到你的密钥库中,并且将证书发给所有客户端。

双向验证中,如果你是客户端,你要生成客户端的私钥和证书,将它们放到密钥库中,并将证书发给服务端,同时,在信任库中导入服务端的证书。如果你是服务端,除了在密钥库中保存服务器的私钥和证书,还要在信任库中导入客户端的证书。

使用单向验证还是双向验证,是服务器决定的。

具体介绍可参考文章:HTTPS实战之单向验证和双向验证

配置单项认证

上面提到,配置单项认证还是双向认证,是服务端决定的。服务端要生成私钥和证书,把私钥放到密钥库,证书发给客户端。下面讲解具体的操作步骤:
第一步:生成服务端私钥,用jdk自带的keytool工具生成:
打开cmd窗口,输入命令:

keytool -genkey -v -alias tomcat -keyalg RSA -keystore ./tomcat.keystore -validity 36500 -ext SAN=dns:域名,ip:后端服务ip

执行完命令后,生成私钥tomcat.keystore文件。这里需要特别强调的是,上述命令必须要写SAN=dns:域名,ip:后端服务ip这段命令,配置正确的域名和ip。如果没有域名,则写localhost,只要配置正确的ip即可。如果不加这段命令,后面生成的证书是无效的。
执行上述命令时,需要填写一些信息。记住自己设置的密码即可。其他信息随便填。
SpringBoot项目配置https访问单项认证谷歌有效证书_第1张图片

第二步:生成客户端证书:
执行以下命令,生成cer证书:

keytool -keystore ./tomcat.keystore -export -alias tomcat -file ./tomcat.cer

第三步:服务端配置.keystore私钥:
将第一步生成的.keystore私钥放入SpringBoot的resources文件夹下:
SpringBoot项目配置https访问单项认证谷歌有效证书_第2张图片
然后在application.yml中配置私钥:
SpringBoot项目配置https访问单项认证谷歌有效证书_第3张图片

第四步:客户端安装cer证书。
如果客户端不安装证书,那么访问SpringBoot项目提供的页面时,会出现如下界面:
SpringBoot项目配置https访问单项认证谷歌有效证书_第4张图片
所以需要安装证书,不再出现此界面。
双击第二步生成的cer文件,
SpringBoot项目配置https访问单项认证谷歌有效证书_第5张图片
SpringBoot项目配置https访问单项认证谷歌有效证书_第6张图片

选择此项,导入证书即可。

双向认证配置

可参考文章:

JDK制作自签名证书,实现双向认证,解决谷歌浏览器证书无效问题,亲测有效

你可能感兴趣的:(日常开发总结,spring,boot,https,java)