通过CURL请求示例详解HTTPS协议

基于HTTPS通信是当前互联网最通用便捷的通信方式,简单理解来看可以视为HTTP协议 + SSL/TLS协议,通过一个curl的示例阐述一下HTTPS协议。

特性:

信息加密传输,防止窃听风险

具有校验机制,防止篡改风险

配备身份证书,防止冒充风险

版本变更

SSL1.0 1994年,未发布

SSL2.0 1995年,有严重漏洞

SSL3.0 1996年,大规模应用,有风险现在不建议

TLS1.0 1999年(别称SSL3.1)

TLS1.1 2006年(别称SSL3.2)

TLS1.2 2008年,2011年修订(别称SSL3.3)

原理

公钥放在数字证书,验证证书可信,即公钥可信,采用公钥加密,服务器收到后,私钥解密,考虑到加密计算量,公钥将对话密钥加密,而其他的信息则采用对话密钥进行对称加密,尽量提升性能。

客户端向服务端索要并验证公钥

双方生成“对话密钥”

双方采用对话密钥加密通信

curl分析HTTPS请求时间

HTTPs耗时 = TCP握手 + SSL握手, 因为涉及到一些加密,及多了几次握手交互,可以看到的时要多于平常时间的3-5倍,当然这个和机器性能相关。

curl分析HTTPS请求过程

curl –trace 命令 可以记录请求的详情,我们就用它来了解一下https整个过程,命令如下:

客户端请求ClientHello

客户端主要向服务器提供以下信息:

1. 支持的协议版本,比如TLS 1.0版。

2.一个客户端生成的随机数,稍后用于生成”对话密钥”。

3. 支持的加密方法,比如RSA公钥加密。

4. 支持的压缩方法。

curl第一步请求如下

服务端响应SeverHello

服务器的回应包含以下内容:

1. 确认使用的加密通信协议版本,比如TLS 1.0版本。如果浏览器与服务器支持的版本不一致,服务器关闭加密通信。

2.一个服务器生成的随机数,稍后用于生成”对话密钥”。

3. 确认使用的加密方法,比如RSA公钥加密。

4. 服务器证书。

还有一种形式是服务端会校验客户端的证书,比如金融类一般金融机构以前网银key即包含一张客户端证书

客户端回应

一个随机数。该随机数用服务器公钥加密,防止被窃听。

编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。

客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供服务器校验。

三个随机数,生成会话密钥。 此外,如果前一步,服务器要求客户端证书,客户端会在这一步发送证书及相关信息。

服务器的最后回应

编码改变通知,表示随后的信息都将用双方商定的加密方法和密钥发送。

服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时也是前面发送的所有内容的hash值,用来供客户端校验。

curl整个请求过程:

文章来源于网络,如有侵权请联系我们,将予以删除

资源分享

本文来自企鹅号 - 程序猿崛起媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯Bugly的专栏

全站 HTTPS 来了

阅读提示:全文较长,预计阅读时长:20分钟 各位使用百度、谷歌或淘宝的时候,有没有注意浏览器左上角已经全部出现了一把绿色锁,这把锁表明该网站已经使用了 HTTP...

3004
来自专栏Java学习网

分析学习HTTPS和HTTP的区别

分析学习HTTPS和HTTP的区别  首先谈谈什么是HTTPS:   HTTPS(Secure Hypertext Transfer Protocol)安全超...

24510
来自专栏微信公众号:Java团长

JavaWeb学习总结(三)——Tomcat服务器学习和使用(二)

  在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下:

1021
来自专栏惨绿少年

HTTPS 原理与证书实践

1.1 网络安全知识 1.1.1 网结安全出现背景 网络就是实现不同主机之间的通讯,网络出现之初利用TCP/IP协议簇的相关协议概念,已经满足了互连两台主机之间...

7197
来自专栏React Native开发圈

HTTPS证书申请及windows server部署

StartSSL免费DV证书 沃通(Wosign)免费DV证书 这两个已经被苹果拉入黑名单。我10月份在StartSSL申请的证书还可以使用。但是近期申请的已经...

3672

获得具有商业签名的TLS证书

如果您打算托管一个可公开访问的使用HTTPS的网站,那么您将需要安装一个具有商业签名的TLS证书,这样访问您网站的人就不会在浏览器中收到有关不安全连接的警告。

1033
来自专栏IMWeb前端团队

从运营商小广告到HTTPS

相信很多人都试过这样的经历,浏览一个正常的网站时,右下突然角弹出一堆小广告,而且这些广告的内容和你浏览的网站格格不入: 前几天还有某微博用户爆料访问gith...

38710
来自专栏派森公园

HTTPS是如何工作的

大家在浏览网页的时候一定有这样的体验,有一些网站在网址那里会显示一个绿色的挂锁,并且网址中“https”相关的字样也是绿色的,聪明的朋友肯定会问,这些颜色和符号...

1014
来自专栏微信终端开发团队的专栏

基于TLS1.3的微信安全通信协议mmtls介绍

编者的话:近年来网络安全事件层出不穷,确保亿万用户的安全隐私是我们微信义不容辞的责任。当然,我们更要保证用户稳定、快速的聊天体验,所以我们有了mmtls。文章干...

89810
来自专栏Java技术栈

SSL / TLS 协议运行机制详解

本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。

1494

扫码关注云+社区

领取腾讯云代金券