最近项目需要,需要配置SSL到服务器中,总结一下方便以后工作
关于HTTPS通信过程
HTTPS协议 = HTTP协议 + SSL/TLS协议
大概流程如下图所示
文字表达如下
服务端准备
1 服务器的私钥-->自己生成
2 使用自己的私钥生成CSR (私钥生成的公钥及一些信息)--> 去证书机构签名
csr 内容
3 得到机构的PEM(包含证书及证书的公钥)
4 将PEM及私钥上传到服务端做准备
工作流程
客户端请求服务端
1 服务端发送证书给客户端,
2 客户端校验证书的有效性(公钥解密hash)
3 使用证书公钥解密得到server公钥,使用server公钥加密传输 clientkey ,私钥解密接收
4 通过80端口使用clientkey 加密通讯
rpc broker 设计思路
client 端 (连接broker)
生成私钥,CSR ,向CA签证书,根据程序不一样,以java为例 ,打包P12 ,生成JKS
jks 分为两个文件, CA 端 还有 client的私钥和证书
broker 端
证书的私钥,一般存放二级证书
通信过程
client 发起通信请求
发送CA 及公钥(证书公钥加密) , ca 校验通过 ,broker校验公钥然后发送自己的公钥及CA给客户端
大家用对方的公钥加密信息,然后用自己的私钥解密。
疑问--> 为什么一般用户不需要特地去生成证书也能正常使用
答--》 系统或者浏览器已经有相应授信机构的公钥以及本地的私钥,这个工作已经做了,无需再做一次
参考
CA和证书那些事_weixin_34250709的博客-CSDN博客
根证书和中间根证书之间有什么区别?_SSL加密技术-CSDN博客_根证书