Https总结 - 图1

总结

  • ca是为了防止网站公钥被中间人替换
  • 网站公钥是为了发送随机密钥
  • 随机密钥为了加密发送内容

第一步,验证证书(目的就是将网站公钥不被修改的送到客户端)

制作证书【ca私钥加密】

【这里ca私钥加密并不是为了隐藏数据(携带加密密文,并且携带有明文的证书(网站公钥)),而是证明证书没有被篡改

Https总结 - 图2
证书内容包含网站公钥【注意区分ca公钥】

网站生成证书要通过ca机构,
生成一个网站公钥 和 一个网站私钥。
网站公钥签名,使用ca机构私钥加密 = 数字证书
【就是给客户端一个原版的,一个原版加密的】

验证证书【ca公钥解密摘要,验证证书】【获得网站公钥】

原版加密的用ca公钥解密 得到解密的 证书内容(包含网站公钥)的摘要。

Https总结 - 图3
对比证书摘要相等,说明证书没问题
从证书中获得网站公钥

第二步,数据传输

使用网站公钥 加密 一个 对称密钥,发送给服务器。
服务获取 对称密钥。
开始使用对称密钥 通信。(AES)

HTTPS必须在每次请求中都要先在SSL层进行握手传递秘钥吗? - 知乎
浏览器可以session ID为单位临时保存加密key等安全参数。

参数

http自动跳转https

第一次用https访问,之后会自动跳转
image.png

会话恢复

省去重新握手
image.png
sessionid存放在客户端(jwt)
image.png

ocsp

服务器校验证书(是否过期)
image.png