只认证服务端,keystore一般是官方CA办法的证书,本实例是演示性文档,自己新建了一个。
1、首先新建一个keystore,用于存放服务端证书,包含了服务端证书的公钥、私钥和证书。
keytool-genkey -v -alias server -keyalg RSA -storetype PKCS12 -keystore E:\7\server.key.p12
输入该命令后,会在对应目录下生成一个keystore文件,其中这个keystore文件就包含了服务端的公钥,私钥和证书。
2、因为要让客户端信任服务端证书,那么需要将服务端证书的公钥文件(.cer)安装到客户端
导出server.key.p12文件为server.cer公钥文件
keytool-keystore E:\7\server.key.p12 -export -alias server -file E:\7\server.cer
3、将2中生成的server.cer文件安装到客户端,双击即可安装
注意因为是服务端,最好在安装时,指定安装到受信任的证书颁发机构
4、客户端安装完成服务端证书,服务端证书已受信任
在Win+r对话框中输入certmgr.msc,回车,会出现以下窗口
点击收信人的根证书颁发机构,会发现刚安装的证书
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会得到以下访问结果,至此服务端的单向认证完成。