https 原理
Https在真正请求数据前,先会与服务有几次握手验证,以证明相互的身份,以下图为例
1、客户端发起一个https的请求,把自身支持的一系列密钥算法套件发送给服务端
2、服务端,接收到客户端所有的密钥算法套件后与自身支持的对比,会从中选出一种加密算法,以证书的形式返回给客户端 证书中还包含了 公钥 颁证机构 网址 失效日期等等
3、客户端收到服务端响应后,验证颁发证书的机构是否合法与是否过期,证书中包含的网站地址是否与正在访问的地址一致等
系统中保留了所有受信任的根证书,浏览器可以查看信任的根证书,自然可以验证web服务器的证书,是不是由这些受信任根证书颁发的或者受信任根证书的二级证书机构颁发的
在验证证书的时候,浏览器会调用系统的证书管理器接口对证书路径中的所有证书一级一级的进行验证,只有路径中所有的证书都是受信的,整个验证的结果才是受信
对于自作的证书,比如企业安装包,需要对证书进行信任,这时候也就安装了非ca的根证书,那么以后的https请求的证书也就会被客户端所信任
4、客户端生成一串随机数,然后用证书中的公钥加密发送给服务端
5、服务端拿到客户端传来的密文,用自己的私钥来解密,从而确认新生成的随机数为对称加密密钥
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架