Https实现原理

大致流程:

  • 浏览器发起Https请求
  • 服务端接受请求返回Https证书(包含公钥)
  • 客户端验证证书是否合法

验证证书通过后:

  • 浏览器本地生成随机数
  • 公钥加密随机数,并传输给服务器
  • 服务器私钥解密出随机数
  • 通过随机数构造对称加密算法,并对结果进行加密后传输

详细:

(概念)数字证书:通信标识,一般由CA中心颁发,或第三方权威机构。包括CA的签名,证书所有的公钥,CA中心的签名算法,指纹及算法,id,版本,有效期等。

证书获取

申请者通过加密算法生成私钥(保存在服务器,不提供给任何人),使用私钥生成证书签名(CSR,附带公钥),需要提供申请者相关信息(域名、拥有者信息),发送给CA机构请求他们的签名,经过签名的才是被信任的证书。
CA机构对申请者进行验证,并在证书中添加信息(颁发机构、有效期、指纹算法、签名算法)形成新证书。

客户端如何识别证书?

浏览器事先准备好了CA机构的相关信息。具体如下:
1.浏览器访问https服务器,并带上自身支持的Cipher Suite(密钥算法套件)
2.服务器接收Cipher并与自身支持的套件对比,如果能够找到双方 都支持的Cipher则返回自己的证书。
3.浏览器确认加密算法并对证书认证。
4.使用证书的认证机构的公钥 按照证书中的签名算法解密获取hash值
5.使用证实的hash摘要算法对证书信息hash计算 对比第4步的hash值,如果相等则被信任。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 之前写过一个关于HTTPS的文章,最近又重新看了看,发现还有很多地方可以补充完善,正好最近也看了关于RSA加密算法...
    ZhouTechBlog阅读 1,181评论 0 5
  • 参考文章:https://blog.csdn.net/zhongzh86/article/details/6938...
    过期的薯条阅读 892评论 0 0
  • 1,摘要 本文配图介绍HTTPS协议的层级结构,访问原理,交互过程,说明如何解决存在的中间人问题。 2,内容 2....
    笔名辉哥阅读 2,350评论 0 51
  • 网上对一些关于对称加密、非对称加密、数字签名、数字证书等文章虽然很多,但是没有深入研究过或者看过一点的人过段时间很...
    WEIJAVA阅读 700评论 0 1
  • 前言:前段时间被问到HTTPS的相关问题,由于离看相关问题的时间很久了再加上自己也没有实践过,很多点没有说出来,因...
    pure懒人阅读 654评论 0 1

友情链接更多精彩内容