【Java面试题】HTTPS的加密流程

1. 客户端发起 HTTPS 请求

客户端在浏览器输入一个HTTPS 网址,并连接服务器的 443 端口。

2. 服务器发送证书给客户端

由于服务器事先会向 ca 申请证书,当收到客户端的 HTTPS 请求后,服务器会将申请到的证书发给客户端。 证书包含的内容有:证书颁发机构的信息,服务器网址的信息,被加密过的服务器公钥,还有经过机构私钥签名之后的数字签名。

3. 客户端解析证书

客户端收到数字证书之后,会验证证书的合法性,如果证书验证通过, 就会生成一个随机的对称密钥,用证书的公钥加密。

4. 客户端发送密钥信息给服务器

客户端将公钥加密后的密钥发送给服务器。

5. 服务器解析得到密钥信息

服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密 ,解密之后就得到客户端的密钥,然后用客户端密钥对返回数据进行对称加密,这样传输的数据都是密文。

6. 服务器发送加密信息

服务器将加密的密文返回给客户端。

7.客户端解析加密信息

客户端收到后,用自己的密钥对其进行对称解密,得到服务器返回的数据。

相关推荐
serve the people8 小时前
python环境搭建 (六) Makefile 简单使用方法
java·服务器·python
小钻风33668 小时前
Docker入门基础知识(二)
运维·docker·容器
深圳市恒讯科技8 小时前
2026新加坡服务器配置全攻略:SSL证书、硬件防火墙与CDN加速
运维·服务器·ssl
回忆是昨天里的海8 小时前
k8s部署的微服务动态扩容
java·运维·kubernetes
野猪佩挤8 小时前
Jenkins动态Salve调度其他集群Docker in Docker
运维·docker·jenkins
松涛和鸣8 小时前
DAY69 Practical Guide to Linux Character Device Drivers
linux·服务器·arm开发·数据库·单片机·嵌入式硬件
乾元8 小时前
下一代检测:基于自编码器(Autoencoder)的异常流量检测
运维·网络·人工智能·深度学习·安全·安全架构
GHL2842710909 小时前
TeamTalk-msg_server学习
运维·服务器·c++·学习
咩咩不吃草9 小时前
Linux环境下MySQL的安装与使用与Navicat
linux·运维·数据库·mysql·navicat
好好学习天天向上~~9 小时前
3_Linux学习总结_基础指令
linux·服务器·学习