Https详细过程

相信做IT的程序员们对https都不陌生,目前几乎所有的请求都基于https,但究竟它整个发送的过程是什么呢?想彻底搞明白https,细致的把每一个环节都弄清楚就很重要了。

首先,准备工作如下:

1.服务端生成自己的公私钥(具体方法可以百度),公钥S.pub,私钥S.pri

2.将公钥S.pub给权威的CA机构(花钱)

3.CA机构生成公私钥CA.pub和CA.pri。再使用CA.pri对你的S.pub签名生成CA证书,再将CA证书颁发给服务器。

4.各个电脑手机等终端生产的时候都内置了CA机构的根证书,CA的公钥CA.pub。


到此,服务端申请证书过程已经结束,通信前的工作就完成了,接下来就是服务器和各客户端的交互了。

1.客户端生成随机数Random_C,向服务器发送客户端的SSL版本和支持的加密算法、Random_C

2.服务端生成的随机数Random_S,服务器返回选好的加密算法和Hash算法、随机数Random_S。同时返回CA证书,里面包含公钥S.pub、证书的颁发机构、有效期等信息

3.客户端收到这些后,用本地的CA根证书、CA.pub去验证服务器给的证书的合法性。若合法继续下一步,不合法则断开,提示用户

4.验证合法后,客户端计算产生随机数字pre-master,使用S.pub加密。根据两个明文随机数Random_C、Random_S和pre-master计算得出对称密钥 enc_key = Fun(Random_C、Random_S、pre-master)。使用约定的hash算法计算摘要,并使用对称密钥enc_key加密

5.将上面生成的所有信息(加密后的pre-master、加密的摘要信息)发送给服务端

6.服务器使用S.pri对pre-master解密,结合Random_C、Random_S,计算得出对称密钥。再使用hash算法计算摘要信息,使用对称密钥解密客户端发过来的信息,验证密钥的正确性

7.根据摘要信息生成数据,并使用对称密钥加密发给客户端。客户端验证,验证通过则握手完成。

8.此后,客户端和服务端使用上述的对称密钥enc_key加密/解密进行通信

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

相关阅读更多精彩内容

  • 超文本传输安全协议(HTTPS,常称为 HTTP over TLS/SSL)是一种通过计算机网络进行安全通信的传输...
    MarchCd阅读 11,999评论 1 22
  • 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。 窃听风险(eavesdr...
    高思阳阅读 2,532评论 0 0
  • 克伦堡宫(Kronborg Castle)位于哥本哈根北部城市赫尔辛格,隔着松德海峡与瑞典的赫尔辛堡遥遥相望。历史...
    慕溪北欧旅游阅读 4,308评论 0 0
  • 指数基金是长生不老的、买指数基金就是买国运 能产生现金流的资产通常比不能产生现金流的资产长期收益率更高;能...
    张涛_西安_cb69阅读 1,396评论 1 1
  • 清脆的鸟鸣声把我从睡梦中叫醒,我朦胧中伸手去抓我的手机,心想这不是我的起床铃声啊怎么这么响?!嘶,怎么这么扎...
    阿拉斯加的小狮子阅读 1,778评论 0 0

友情链接更多精彩内容