Https认证:
单向认证:保证服务器是可信任的,可以安全的访问的!
客户端拿到服务器的证书,通过CA认证信任,然后取出公钥,加密对称密钥传给服务器,服务器用自己的私钥解密得到对称密钥,后续使用该对称密钥加解密数据!
双向认证:客户端和服务器都是可以互相信任的!
客户端向服务器发送一个请求时,服务器会把自己的证书,以及一些信息发送过来,客户端拿到服务器的证书通过CA进行验证,如果是可靠的,继续进行,如果不是可靠的,则会弹出警告,告诉客户端证书有风险。同样服务器也也要验证客户端的证书,如果没有通过验证,拒绝连接,如果两端都通过验证,则可以进行正常通信,使用对方的公钥加密对称密钥,实现安全通信!
##使用 keytool工具生成管理证书
// 生成服务器证书server.keystore
keytool.exe -genkey -v -alias server -keyalg RSA -keystore D:\home\server.keystore -validity 36500 -ext SAN=ip:192.168.1.1
// 生成客户端证书client.p12 证书格式PKCS12
keytool.exe -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\home\client.p12 -validity 36500
// 导出客户端证书client.cer
keytool.exe -export -alias client -keystore D:\home\client.p12 -storetype PKCS12 -rfc -file D:\home\cli