加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

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

发布时间:2017-09-19 17:09:12 所属栏目:建站 来源:51CTO技术栈
导读:副标题#e# 注:众所周知,数据 HTTP 明文传输过程中,会遇到如劫持、篡改、监听、窃取等一系列问题,解决这一问题的方法就是做 HTTPS 改造。 HTTPS 的作用是在会话层、表示层引入 TLS/SSL 握手协议,通过数据加密、解密方式,来应对数据明文传输过程中遇到

Session 复用有 Session ID 和 Session tickets 两种方式,下图是实现流程:

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

  • Session ID。使用 clienthello 中的 session ID 查询服务端的 session cache,如果服务端有对应的缓存,则直接使用已有的 session 信息提前完成握手,称为简化握手。

    Session ID 是 TLS 协议的标准字段,市面上的浏览器全部都支持 Session ID。需要注意的是,单机多进程间共享 ssl session 对集群环境是没有意义的。

    因此,在这里需要实现多机共享 Session ID。可以放在 redis 中,nginx 提供了专门处理 Session ID 的模块 ssl_session_fetch_by_lua_block。

  • Session tickets。Session tickets 是会话 ID 的一种补充,server 将session 信息加密成 ticket 发送给浏览器,浏览器在后续握手请求时会发送 ticket,server 端如果能成功解密和处理 ticket,就能完成简化握手。

    显然,session ticket 的优点是不需要服务端消耗大量资源来存储 session 内容。但是 session ticket 只是 TLS 协议的一个扩展特性,目前的支持率不是很广泛,只有 60% 左右。

    还需要维护一个全局的 KEY 来加解密,需要考虑 KEY 的安全性和部署效率。

03、Ocsp stapling 的合理使用

Ocsp 全称在线证书状态检查协议 (rfc6960),用来向 CA 站点查询证书状态,比如证书是否被撤销,是否已经过期等。

通常情况下,浏览器使用 OCSP 协议发起查询请求,CA 返回证书状态内容,然后浏览器接受证书是否可信的状态。

如下图,是 Ocsp 实现流程:

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

这个过程非常消耗时间,因为 CA 站点有可能在国外,导致网络不稳定,RTT 也比较大。那有没有办法不直接向 CA 站点请求 OCSP 内容呢?

ocsp stapling 就能实现这个功能。ocspstapling 的原理简单来说是服务端代替客户端完成 CA 校验证书的过程,节省用户端的时间开销。

就是当浏览器发起 clienthello 时会携带一个 certificate status request 的扩展,服务端看到这个扩展后将 OCSP 内容直接返回给浏览器,完成证书状态检查。

由于浏览器不需要直接向 CA 站点查询证书状态,这个功能对访问速度的提升非常明显。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读