HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层。 HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL 。

https://tech.upyun.com/article/338/%E4%B8%8D%E6%98%AF%20HTTPS%20%E6%8B%96%E6%85%A2%E7%BD%91%E7%AB%99%E9%80%9F%E5%BA%A6%EF%BC%8C%E8%80%8C%E6%98%AF%E4%BC%98%E5%8C%96%E5%81%9A%E7%9A%84%E4%B8%8D%E5%A4%9F%E4%BC%98%E7%A7%80.html

HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层在( HTTP 与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。传统的 HTTP 模式,存在着大量的灰色中间环节,相关信息很容易被窃取,但 HTTPS 却是通过认证用户与服务器,将数据准确地发送到客户机与服务器,并采用加密方式以防数据中途被盗取,大大降低了第三方窃取信息、篡改冒充身份的风险。

HTTPS 访问所面临的问题

通常有得必有所失,HTTPS 虽然增加了网站安全性,但也会增加用户访问网站的时间以及服务器性能的消耗。下面我们来看看 HTTPS 面临的一些问题。

  • HTTPS 多次握手,会一定程度上降低用户访问速度
  • 网站改用 HTTPS 以后,由 HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用 301、302 跳转)
  • HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加大量机器(HTTPS 访问过程需要加解密)
  • SSL 证书费用较很高,以及其在服务器上的部署、更新维护非常繁琐

又拍云一直对 HTTPS 性能进行持续优化,致力于 HTTPS 达到更快的数据传输性能。又拍云 HTTPS 优化已支持了以下特性:HTTP/2+Server Push、TLS 1.3+最低 TLS 版本控制、HSTS、ChaCha20-Poly1305、TLS Record Size、OCSP Stapling等,这些特性极大提升了 HTTPS 传输速度和用户的访问体验。

持续优化,让 HTTPS 更快更安全

为了使 HTTPS 达到更快的数据传输性能,并且在传输过程中更加安全,又拍云不遗余力地对其进行优化。下面具体来看下这些新特性到底给 HTTPS 带来了什么。

HTTP/2+Server Push

HTTP/2 即超文本传输协议 2.0,是下一代 HTTP 协议。它由国际互联网工程任务组 (IETF)的 Hypertext Transfer Protocol Bis (httpbis) 工作小组进行开发,以 SPDY 为原型,经过两年多的讨论和完善最终确定。

HTTP/2 优势如下:

  • HTTP/2 采用二进制格式传输数据,其在协议的解析和优化扩展上带来更多的优势和可能。
  • HTTP/2 对消息头采用 HPACK 进行压缩传输,能够节省消息头占用的网络的流量。
  • 多路复用,简单说就是所有的请求可以通过一个 TCP 连接并发完成。
  • Server Push:服务端能够更快的把资源推送给客户端。

其中 Server Push 是 HTTP/2 规范中引入的一种新技术,即服务端在没有被客户端明确的询问下,抢先地 “推送” 一些网站资源给客户端(浏览器),该特性可以极大的改善页面访问效果。

又拍云 CDN 当前已全平台支持 HTTP/2,并已默认开启。又因 HTTP/2 是在 HTTPS 协议的基础上实现的,所以只要使用又拍云 HTTPS 加速服务的域名,都可免费享受 HTTP/2 服务,无需做任何特殊配置。

Server Push 开启路径:登陆 CDN 控制台,依次进入:服务管理 > 功能配置 > HTTPS > HTTP/2 ,点击【管理】按钮即可开始配置。配置中,其中【匹配路径】为必填项,【推送资源】为非必填项。

TLS 1.3+最低 TLS 版本控制

TLS 1.3 是 TLS 协议中最新、最快和最安全的版本,相比旧版的 TLS 协议增加了多项新功能。通过简化 SSL 握手,提高了建连速度,减少了延迟。并通过移除有安全隐患的加密算法,提高了用户访问的性能、效率和安全性等等。

△ TLS 1.2 握手流程

△ TLS 1.3 握手流程

如图所示,TLS1.2 协议中需要加密套件协商、密钥信息交换、ChangeCipherSpec 协议通告等过程,需要消耗 2-RTT 的握手时间,这也是造成 HTTPS 协议慢的一个重要原因之一,而在 TLS 1.3 中,客户端首先不仅发送 ClientHello 支持的密码列表,而且还猜测服务器将选择哪种密钥协商算法,并发送密钥共享,使第一次握手时只需要 1-RTT,从而提高了速度。除此之外,TLS 1.3 还有以下新特性:

  1. 废除不支持前向安全性的 RSA 以及具有 CVE-2016-0701 漏洞的 DH 密钥交换算法;
  2. MAC 只使用 AEAD 算法;
  3. 禁用 RC4 / SHA1 等不安全的算法;
  4. 加密握手消息;
  5. 减少往返时延 RTT,支持 0-RTT;
  6. 兼容中间设备 TLS 1.2;
  7. 加密握手消息。

另外,随着加密标准的升级,TLS 1/1.1 将逐渐被全行业禁用。目前正处于 TLS 1.2 取代 TLS 1/1.1 的过渡时期,2018 年将会有越来越多的互联网安全企业启用 TLS 1.2。又拍云 CDN 服务可灵活配置网站使用的最低 TLS 协议版本,提升网站的安全性。选择的协议级别越高,相应的也就更安全,但是可以支持的浏览器也就越少,有可能会影响终端用户访问,请谨慎选择配置。

TLS 1.3 及最低 TLS 版本开启路径:CDN → 功能配置 → HTTPS → TLS1.3/最低 TLS 版本

HSTS

又拍云采用了 HSTS(HTTP Strict Transport Security)技术,开启此功能后,将保证浏览器始终连接到网站的 HTTPS 加密版本,不需要用户手动在URL地址栏中输入 HTTPS 的地址。HSTS 的开启减少用户等待 301/302 的跳转时间, 有效地保护网站和用户的数据安全。

HSTS 开启路径:登陆 又拍云CDN 控制台,依次进入:服务 > 功能配置 > HTTPS > HSTS,点击管理即可开始配置。

ChaCha20-Poly1305——HTTPS 移动端对称加密套件

ChaCha20-Poly1305 是由 Google 专门针对移动端 CPU 优化而采用的一种新式流式加密算法,它的性能相比普通算法要提高 3 倍,在 CPU 为精简指令集的 ARM 平台上尤为显著(ARM v8 前效果较明显)。其中 ChaCha20 是指对称加密算法,Poly1305 是指身份认证算法。ChaCha20-Poly1305 算法精简,有安全性强、兼容性强等特点,可减少加密解密所产生的数据量进而可以改善用户体验,减少等待时间,节省电池寿命等。

又拍云 CDN 已经全面支持 Google 推出的针对移动端优化的加密套件——ChaCha20-Poly1305。所有用户都可以享受到该算法加解密性能提升,网页加载时间减少,电池寿命延长等优势。又拍云 CDN 已经默认支持 ChaCha20-Poly1305,并针对不支持 AES-NI 的终端优先选择此算法作为对称加密算法。

贴心福利,免费 SSL 证书+自主配置

至于前文中提到的 SSL 证书昂贵以及申购、配置麻烦的问题,又拍云也已经帮你想好了解决方法。又拍云联合 Symantec、GeoTrust、TrustAsia、Let’s Encrypt 推出付费和免费 SSL 证书申请与管理一站式服务,无需繁杂流程,一键申请,自主部署,轻松实现网站与 Web 应用的 HTTPS 加密部署。

最后,大家可以看到,又拍云在优化 HTTPS 访问时,付出了艰辛的努力,实现了各种优化功能,让用户使用的更加安心、舒心,带给用户更好的体验。如果你的网站还没有开启 HTTPS,不要犹豫,赶紧部署起来,赶上全网加密时代吧。

[转帖]HTTPS的简单说明的更多相关文章

  1. [转帖]PG的简单备份恢复 找时间进行测试

    转帖PG的简单使用 https://blog.csdn.net/lk_db/article/details/77971634 一: 纯文件格式的脚本: 示例:1. 只导出postgres数据库的数据, ...

  2. Https系列之一:https的简单介绍及SSL证书的生成

    Https系列会在下面几篇文章中分别作介绍: 一:https的简单介绍及SSL证书的生成二:https的SSL证书在服务器端的部署,基于tomcat,spring boot三:让服务器同时支持http ...

  3. Spring Boot 支持 HTTPS 如此简单,So easy!

    这里讲的是 Spring Boot 内嵌式 Server 打 jar 包运行的方式,打 WAR 包部署的就不存在要 Spring Boot 支持 HTTPS 了,需要去外部对应的 Server 配置. ...

  4. Spring Boot 支持 HTTPS 如此简单,So easy!

    这里讲的是 Spring Boot 内嵌式 Server 打 jar 包运行的方式,打 WAR 包部署的就不存在要 Spring Boot 支持 HTTPS 了,需要去外部对应的 Server 配置. ...

  5. windows系统 phpstudy2018 配置阿里云https最简单的流程!

    一.从阿里去下载ssl文件放到C:\phpStudy\PHPTutorial\Apache\conf\cert 二.首先phpstudy开户php_openssl扩展,具体如下图 一般网上的教程,都要 ...

  6. HTTPS分析-简单易懂

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  7. https的简单学习

    HTTPS介绍: (全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Sec ...

  8. 设置Portainer管理Docker并且开启https(简单方法)

    1. 序言 Portainer是一个十分好用的docker图形化管理界面,可以很方便的查看容器状态,错误log等等. 2. 安装 安装portainer是十分简单的,只需要执行docker pull ...

  9. http与https的简单比较

    一.概念 1.HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减 ...

随机推荐

  1. 19-[模块]-xml

    1.xml协议 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融 ...

  2. deque!

    deque:双端队列 比较常用的函数: que.back() 返回容器que的最后一个元素的引用.如果que为空,则该操作未定义. que.begin() 传回迭代器中的第一个数据地址. que.cl ...

  3. 并行Linq

    有时候我们对大批量数据进行处理,此时并行linq就起作用了. 并行查询 对于以下查询可以耗时会非常大,如下: ; var r = new Random(); , arraySize).Select(x ...

  4. Linux之服务器介绍

    服务器,也称伺服器,是提供计算服务的设备.由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力. 服务器: 服务器指的是网络中能对其他机器提供某些服务的计算机系统 ...

  5. 北美KubeCon新风,正把K8S魔力带向边缘计算

    作者:DJ 审校:Kevin·Wang 1. 容器生态圈新的创新方向 2018年容器技术圈的年终盛典北美KubeCon终于在西雅图落下了帷幕.这次北美KubeCon总共吸引了8000多观众参会,创下历 ...

  6. c++引用与指针的关系

    目录 1.引用的概念及用法 2.引用做参数 3.引用做返回值 4.汇编层看引用的特性 5.引用和指针的区别和联系: 更多内容请移步专栏:https://blog.csdn.net/column/det ...

  7. Flash导出安卓端apk

    最近外甥女在学校做了一个演示视频,基于flash做的,希望小舅给她导出成可以运行在pc/android端的可执行程序.看了下过程还是蛮复杂的,还只能一天时间.重新照葫芦画瓢做一款是来不及了,由于以前基 ...

  8. 如何在多机架(rack)配置环境中部署cassandra节点

    cassandra节点上数据的分布和存储是由系统自动完成的.除了我们要设计好partition key之外,在多机架(rack)配置环境中部署cassandra节点,也需要考虑cassandra分布数 ...

  9. 01-numpy基础简介

    import numpy as np # ndarray ''' # 三种创建方式 1.从python的基础数据对象转化 2.通过numpy内置的函数生成 3.从硬盘(文件)读取数据 ''' # 创建 ...

  10. bcd引导Ubuntu

    下面步骤就是创建Windows的启动项了. 以管理员身份打开CMD, 然后输入 bcdedit /create /d "ubuntu" /application bootsecto ...