• Https简单流程


      最近看到不少同学在网上写的面经,很多公司都会问到HTTPS,昨晚晚上臭儿子睡了之后花了大概一个小时读了两篇文章,算是把过程理清楚了,今天就写写总结

      

      1 客户端也就是浏览器请求一个url,比如是https://baidu.com 

      2 server端收到请求后,第一件事就是把自己的公钥传给客户端,但是传公钥不能直接传,直接传不安全

      示意图如下

      

      所以传递公钥必须通过数字证书的方式

      

      

      首先证书里包含这网站的公钥,但是客户端在收到证书的时候首先要验证证书的合法性。

      验证的逻辑是客户端本地会有一些新来的证书,这部分是操作系统已经处理过的。当收到证书之后,浏览器会对明文部分,也就是上图里除了证书颁发者签名之前的部分,进行MD5算法进行摘要处理。摘要算法是公开的,这部分不需要担心。同时利用本地已经有的值得信任的证书的公钥部分对签名进行解密,解出来的也是摘要信息。然后比较两边的摘要信息是否一致。如果一致那么证书里带的server的公钥就是可以用的

      3 client会对本次session产生一个密钥,在把密钥传给server之前利用刚刚拿到的server公钥对该密钥进行加密,然后对加密后的密钥进行传入

      4 server端拿到了该密钥之后,使用自己的私钥进行解密,解出来的就是client的密钥

      5 把client要的内容 利用client的密钥进行加密,然后传入给client

      6 client拿到了内容后使用自己的私钥进行解密,同时展示内容

  • 相关阅读:
    Java Stream 去重对象
    CentOS7安装JDK8
    CentOS7安装Tomcat9
    MySQL 8.0 安装
    面相对象7大原则
    Spring Boot MyBatis连接MySQL数据库
    win11右键改回win10风格,win10右键改回win11风格,不用重启
    【转载】NetCore 开发实战(目录整理)
    viewState cookie session _VIEWSTATE
    外部JS得到客户端ID
  • 原文地址:https://www.cnblogs.com/juniorMa/p/14324470.html
Copyright © 2020-2023  润新知