https建立连接

本文详细介绍了HTTPS连接的建立过程,包括客户端与服务器之间的交互步骤,如版本号与加密算法的交换、证书验证、会话密钥的生成及数据加密方式等。此外,还解释了X.509证书的各个字段及其作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


https连接建立图解

图解


https连接建立步骤说明

  1. 客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。(图中1)
  2. 服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。(图中2,3)
  3. 客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。
  4. 生成会话密钥(对称密钥),可能的认证,加密会话密钥(使用证书中包括的服务器端的公钥来加密会话密钥)
    • 用户端根据协商的加密算法随机产生一个用于https会话的“对称密码”(会话密钥),然后用服务器的公钥(服务器的公钥从服务器的证书中获得)对其加密,然后将加密后的“会话密钥”传给服务器。
    • 如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名。
  5. 将这个含有签名的随机数和客户自己的证书以及加密过的“会话密钥”一起传给服务器
  6. 服务器使用私钥(证书中服务器的公钥对应的私钥)解密出加密后的会话密钥(客户端认证省略)。
  7. 服务器和客户端用相同的主密码即“会话密钥”进行数据的加密进行通信,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。
  8. SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

    如果服务器要认证客户端:

    如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA 是否可靠,发行CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“会话密钥”。(一说是client发给服务器的主密钥,两端根据此主密钥生成会话密钥:server收到主密钥执行一系列步骤来产生主通讯密码,同时客户端也将通过同样的方法产生相同的主通讯密码。)


x509证书

x509证书字段

  • 证书版本
  • 证书序列号
  • 签名算法ID
  • 证书颁布者的名字
  • 证书有效期
  • 对象名称(申请证书的网站,服务器等)
  • 对象的公开密钥信息(算法ID和公钥值)
  • 可选的证书发布者ID
  • 可选的对象唯一ID
  • 拓展(基本约束,对象与证书发布者的关系,证书的策略,授予证书的策略,密钥的使用,对公钥使用的限制)
  • CA(证书发布者)对证书信息(以上)的签名;

这里写图片描述

一般可信的大CA的公钥已经在浏览器browser中了,这样建立https连接时获取服务器端证书时就可以验证证书的有效性;

ref:
http://blog.youkuaiyun.com/sean_cd/article/details/6966130

https://en.wikipedia.org/wiki/X.509

http://blog.youkuaiyun.com/lxqluo/article/details/6960306

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值