HTTPS配置

HTTPS

HTTPS原理

超文本传输安全协议(Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的隐私与完整性。

HTTPS连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输。HTTPS还广泛使用于保护所有类型网站上的网页真实性,保护账户和保持用户通信,身份和网络浏览的私密性。

HTTPS的主要思想是在不安全的网络上创建一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的防护。

HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如GlobalSign等)(意即“我信任证书颁发机构告诉我应该信任的”)。因此,一个到某网站的HTTPS连接可被信任,当且仅当:

  • 用户相信他们的浏览器正确实现了HTTPS且安装了正确的证书颁发机构;
  • 用户相信证书颁发机构仅信任合法的网站;
  • 被访问的网站提供了一个有效的证书,意即,它是由一个被信任的证书颁发机构签发的(大部分浏览器会对无效的证书发出警告);
  • 该证书正确地验证了被访问的网站(如,访问https://example.com时收到了给example.com而不是其它组织的证书);
  • 或者互联网上相关的节点是值得信任的,或者用户相信本协议的加密层(TLS或SSL)不能被窃听者破坏。

HTTPS和HTTP的区别

HTTPS和HTTP的区别主要为以下四点:

  • https协议需要到ca申请证书,一般免费证书很少,需要交费。
  • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

HTTP TO HTTPS

鉴于HTTPS的安全性,有必要把网站从HTTP迁往HTTPS,迁移步骤如下:

  1. 购买证书(可以通过百度智能云),如果是多域名,可以申请泛域名证书;
  2. 在网站和百度智能云上配置证书;
  3. 把网页上所有HTTP链接,修改为HTTPS;
  4. 对HTTP请求301/302重定向到HTTPS,比如可以重定向首页,这样不影响之前的HTTP访问。

功能实现

  • 当接收到HTTPS协议的请求时,CDN将使用客户上传的SSL证书去校验请求的合法性并返回内容。
  • 如果命中缓存,CDN则直接加密响应相应内容至用户。
  • 如果未命中缓存,CDN将向源站请求回源。
    • 回源协议选择HTTPS时,需要选择TLS版本
    • 回源协议选择HTTP时,则无需选择TLS版本。

HTTP/2

百度CDN已经支持HTTP/2协议,默认开启HTTP/2。用户在使用中,首先要确认开启HTTPS配置,确保HTTPS证书添加成功。用户通过百度智能云CDN API或CDN控制台开启HTTPS配置,配置成功后便可使用HTTP/2。

HTTP/2原理

HTTP/2是HTTP的新版本,由IETF于2015年5月以RFC 7540正式发表。它主要基于SPDY协议,在请求方式、状态码、URI和多数HTTP Header字段都和HTTP/1.1 保持高度兼容,并在此基础上有下述优化,提高浏览器的页面加载速度、减少网络延迟:

  • 单个长连接:单一页面可一直复用一个连接,无需新建连接,可优化由于创建多个TCP连接导致的时延,提高吞吐量。

  • 多路复用:在单个连接中,多个请求或响应可同时存在于多个独立的stream上,避免HOL堵塞(Head of Line Blocking)。

  • 优先级排序:对请求标记依赖层级,相同层级支持对请求和响应按优先级排序,Server可依次排序填充数据,提高特定请求的响应速度。

  • 头部压缩和二进制编码:HTTP/2新引入HPACK算法,用于对HTTP头部做压缩,以减少头部数据的传输。此外,HTTP头部使用二进制编码进行传输,替代HTTP/1.x中的纯文本传输。

  • 服务器推送:服务端向客户端发送比客户端请求更多的数据,即允许服务器直接提供浏览器渲染页面所需资源,无需浏览器收到或解析页面后再提起一轮请求,节约加载时间。

  • SSL加密:主流浏览器支持的HTTP/2均基于SSL加密,在保证性能的前提下使网站更安全。在ALPN的支持下,客户端可以主动选择使用HTTP/2还是HTTP/1.1,提高兼容性。

HTTP/2优势

HTTP/2允许在同一连接上交替发送请求和响应消息,使用高效率的编码HTTP Header字段,可对请求定义优先级、快速响应更重要的请求。此协议减少了TCP连接的建立,与其他流更少的竞争和更长时间的链接,可有效提高网络容量的利用率。

  • 高效:头部压缩和二进制编码提高了请求和响应的效率,多路复用可避免HOL堵塞。

  • 灵活:通过定义请求的优先级,可以快速获取更重要的响应请求。

  • 快速:服务器推送可预先获得服务器推送至客户端的资源,提高网页加载速度。

  • 安全:主流浏览器均支持基于TLS加密的HTTP/2协议,保证客户网站的安全性。

配置HTTPS

说明:

  • 配置HTTPS的一个加速域名,必须要上传证书,了解证书详情请参考证书管理
  • 如果选择HTTPS加速,用户和云的CDN之间使用的是HTTPS协议通信,CDN和源站之间用户可以在设置的时候选择使用HTTPS还是HTTP。回源使用HTTPS时,源站必须支持443端口;如果选择HTTP协议,源站必须支持80端口。

操作步骤

  1. 登录CDN控制台。

  2. 选择需要配置的CDN加速域名,选择“HTTPS配置”页签。

  3. 点击“编辑”,系统弹出设置HTTPS窗口。

  4. 选择“开启”,完成相关参数配置。

    • 了解证书详情请参考证书管理
    • 百度智能云CDN在https配置时,支持默认证书选择,当域名具有bos服务证书时,自动关联bos服务证书;当域名具有百度大搜证书时,可以选择关联百度大搜证书或自定义上传证书。
    • “HTTP转换为HTTPS请求”:开启该功能后,CDN节点收到HTTP请求将自动redirect到HTTPS,不开启则直接将请求发回源站处理,目前支持301和302跳转。
    • “HTTP/2”:默认开启“HTTP/2”,用户可选择“关闭”;HTTP/2是HTTP的新版本,可提高浏览器的页面加载速度、减少网络延迟。
    • “回源协议”:回源协议为HTTP类型回源将回源至80端口,HTTPS类型则回源至443端口,请保证端口处于服务状态。源站为BOS时,支持HTTP和HTTPS协议回源。
  5. 点击“确认”,完成设置HTTPS。