SpringBoot的SSL服务端单向认证

时间:2024-04-09 12:03:50

只认证服务端,keystore一般是官方CA办法的证书,本实例是演示性文档,自己新建了一个。

1、首先新建一个keystore,用于存放服务端证书,包含了服务端证书的公钥、私钥和证书。

     keytool-genkey -v -alias server -keyalg RSA -storetype PKCS12 -keystore E:\7\server.key.p12

     输入该命令后,会在对应目录下生成一个keystore文件,其中这个keystore文件就包含了服务端的公钥,私钥和证书。

     SpringBoot的SSL服务端单向认证

2、因为要让客户端信任服务端证书,那么需要将服务端证书的公钥文件(.cer)安装到客户端

     导出server.key.p12文件为server.cer公钥文件

     keytool-keystore E:\7\server.key.p12 -export -alias server -file E:\7\server.cer

    SpringBoot的SSL服务端单向认证

3、将2中生成的server.cer文件安装到客户端,双击即可安装

     注意因为是服务端,最好在安装时,指定安装到受信任的证书颁发机构

                SpringBoot的SSL服务端单向认证

               SpringBoot的SSL服务端单向认证

               SpringBoot的SSL服务端单向认证

               SpringBoot的SSL服务端单向认证

              SpringBoot的SSL服务端单向认证

4、客户端安装完成服务端证书,服务端证书已受信任

    在Win+r对话框中输入certmgr.msc,回车,会出现以下窗口

             SpringBoot的SSL服务端单向认证

    点击收信人的根证书颁发机构,会发现刚安装的证书

             SpringBoot的SSL服务端单向认证

5、在springboot的helloworld项目中的application.properties配置文件中配置以下信息,同时将刚生成的server.key.p12文件放到resources目录下,启动项目

server.port=8080
server.ssl.key-store=classpath:server.key.p12
server.ssl.key-store-password=dzm123
server.ssl.key-alias=server
server.ssl.keyStoreType=JKS

6、360浏览器中输入https://192.168.16.21:8080/(本机IP),因为我们自己颁发的证书不是官方CA颁发的证书,使用chrome访问会被直接拦截掉,360会得到以下访问结果,至此服务端的单向认证完成。

SpringBoot的SSL服务端单向认证