第一站 - 轻松上网从此开始!

上网第一站

当前位置: > SEO >

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结(2)

时间:2017-09-12 11:11来源:我来投稿获取授权
以下内容来自网络或网友投稿,www.swdyz.com不承担连带责任,如有侵权问题请联系我删除。投稿如果是首发请注明‘第一站首发’。如果你对本站有什么好的要求或建议。那么都非常感谢你能-联系我|版权认领
所有原始请求协议都记录在 x-request-url 中,如果业务系统鉴权,一定要遵循 x-request-url 记录的协议,就可应对回跳导致的用户端 Mix Content 问题。 03、App 原

  所有原始请求协议都记录在 x-request-url 中,如果业务系统鉴权,一定要遵循 x-request-url 记录的协议,就可应对回跳导致的用户端 Mix Content 问题。

  03、App 原生无法识别//的问题

  出现浏览器可以识别 //,但 App 原生无法识别 // 的原因很简单,因为浏览器本身做了适配。

  当时,苏宁服务端有一个系统,专门提供一个接口,向各个端提供图片。做完 HTTPS 改造之后,PC 端和客户端都没有问题。但是第二天,很多用户突然就不能加载图片,原因是请求在 APP 原生情况下没法识别 //。

  这里的解决方法,只能是客户端开发人员做适配,下图是 App 无法识别//的一个例子:

  

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结

  04、如何处理商用 CDN 上的证书和私钥?

  CPN 证书的处理是大多数小型互联网企业都会遇到的问题。因为这些小企业不像阿里、京东可自建 CDN,苏宁也是一样。

  苏宁的 CDN 由自建和商用两种组成,一旦使用商用 CDN,就会面临 HTTPS 如何过去的问题。

  企业只要将私钥给到第三方或厂商之后,在所有厂商的 CDN 服务器都没办法控制。当有黑客攻击完厂商服务器后,加密已没任何意义,因为私钥已经泄露。

  如下图,业界比较公认的应对方式分别是:双证书的策略、四层加速和 Keyless 解决方案。

  

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结

  双证书的策略。它的思想很简单,相当于用户到 CDN 端,提供的是 CDN 的证书,做加解密。从 CDN 到应用服务器端用的是应用自有的证书来做加解密。

  这样的方式,可以保证应用端的密钥不用提供给 CDN 厂商,但根本的问题还是没有解决,那就是 CDN 厂商的证书仍然有泄露的可能。如果泄露了,用户端还是会受到影响。

  四层加速。很多 CDN 厂商都有能力提供 TCP 加速,做动态、还原和择优等。CDN 厂商只做四层模式和 TCP 代理,不考虑请求缓存。

  这样就没必要将证书暴露给 CDN 厂商,这种方式适用于动态回源请求,比如加入购物车、提交订单、登录等。

  Keyless 解决方案。适用于金融,提供一台实时计算的 Key Server 。

  

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结

  当 CDN 要用到私钥时,通过加密通道将必要的参数传给 Key Server,由 Key Server 算出结果并返回即可。

  05、HTTPS 测试策略

  当引入一个新的协议,如何进行测试呢?主要步骤,如下图:

  

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结

  源码扫描。当开发人员完成资源替换后,利用 Jenkins 遍历代码库,shell 脚本扫描出 HTTP 链接。

  对页面爬虫扫描。我们会写一些爬虫脚本,对测试环境的链接进行扫描。

  测试环境验证。自动化测试固然好,但是主要核心流程还是需要手动覆盖一遍,防止 HTTPS 对页面加载出现未知影响。

  如有些页面是用 HTTPS 去访问,可能这个系统还不支持 HTTPS,必须要手动验证。

  线上预发和引流测试。HTTPS 的改造版本发到线上对用户来讲是没有影响的,因为用户使用的还是 HTTP 流量。

  可以选择线上预发的方式,预发验证完毕后,通过 301 的方式,将用户的流量从 HTTP 切到 HTTPS,这个后面讲灰度时还会深入讲解。

  另外,我们还引入了引流测试系统:

  

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结

  它的思路很简单,根据域名、用户请求做捕获,将所有捕获流量放到 Copy Server 中去扩大,放大若干倍,然后通过 Sender 再发送回到系统中。

  这样的方式,可以通过用户的真实流量,来验证 HTTPS 的功能性和性能影响有多大。

  HTTPS 方案之性能优化篇

  谈如何优化 HTTPS 的性能之前,我们先来看看整个 TLS 握手流程,如下图:

  

全站HTTPS没你想象的那么简单,电商网站兼顾安全与性能的踩坑小结

  如图中所示,一个握手过程最坏的情况下,要分为八个步骤:

  发送 Syn 包到 Web 客户端,收到并确认后,同时发送 SynAck 到服务器,这时还是一个 HTTP 的请求。

  HTTP 转换 HTTPS,需要做一次 302 或者 301 跳转。

  用户再次发送 HTTPS 请求,做一次 TCP 握手。

  做 TLS 完全握手第一阶段,Clienthello 到 Server hello。

  当证书首次到客户端,客户端需要走验证流程,做 CA 域名解析。

  第二次,TLS 握手。

  在线证书合法性校验的过程。

  TLS 完全握手第二阶段,底部灰色部分才是真正的数据通讯。

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发布者资料
第一站编辑 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2012-05-22 19:05 最后登录:2014-08-08 03:08
栏目列表
推荐内容
分享按鈕