淘宝全站HTTPS 百万页面改造技术细节大起底

简介: 电商启用全站HTTPS是一件门槛极高的事情,它需要投入巨大的资源,不仅是人力、财力等方面,而且对技术能力也提出了极为苛刻的要求。

电商启用全站HTTPS是一件门槛极高的事情,它需要投入巨大的资源,不仅是人力、财力等方面,而且对技术能力也提出了极为苛刻的要求。

一般来说,普通电商只会在登录和交易这些“关键”环节启用HTTPS。而目前,阿里巴巴是全球唯一大规模启用电商平台全站HTTPS的公司

淘宝全站HTTPS 百万页面改造技术细节大起底

什么是HTTPS?百科是这样解释的。HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。现在它被广泛用于互联网上安全敏感的通讯,例如交易支付等。

淘宝全站HTTPS 百万页面改造技术细节大起底

从某种意义上来讲,仅在登录、交易支付环节启用HTTPS只能说是最为基础的安全解决办法,而全站HTTPS才是更为高阶,也更能体现技术能力的安全方案。

淘宝全站HTTPS 百万页面改造技术细节大起底

全站HTTPS的启用并非易事,而对于类似淘宝、天猫这种体量的网站来说,更为艰巨。据悉,阿里巴巴全站HTTPS的改造历时数月,涉及上百万的页面。阿里巴巴集团首席风险官刘振飞指出,尽管SSL加密技术较为成熟,但阿里巴巴启用全站HTTPS仍旧面临极大的挑战,那就是系统的复杂性和巨大的投入。阿里巴巴之所以坚定地这么做,目的只有一个——竭尽所能地保护用户信息安全。

启用HTTPS必须解决的难题

然而,HTTPS并非“想上就上”,正式启用之前,必须解决至少三个方面的大问题。

首先是性能,这也主要分三点。

1. HTTPS需要多次握手,因此网络耗时变长,用户从HTTP跳转到HTTPS需要一些时间;

2. HTTPS要做RSA校验,这会影响到设备性能;

3. 所有CDN节点要支持HTTPS,而且需要有极其复杂的解决方案来面对DDoS的挑战。

其次,兼容性及周边。

1.页面里所有嵌入的资源都要改成HTTPS的,这些资源可能会来自不同的部门甚至不同的公司,包括图片、视频、表单等等,否则浏览器就会报警;

2.移动客户端(APP)也需要适配HTTPS,所以必须做调整修改;

3.解决第三方网站看不到Referer的问题;

4.所有的开发、测试环境都要做HTTPS的升级;

最后,为保证上线时的顺利切换,需要提前准备大量的预案,以应对各种可能出现的情况。

阿里巴巴是怎么做电商全站HTTPS的?

2015年10月14日,杭州云栖大会上,阿里巴巴宣布旗下电商平台已实现全站HTTPS。事实上,该工程于2015年9月底就已基本完成,这其中不仅有PC页面的改造,还包括了淘宝、天猫等移动客户端。

如此庞杂的系统工程,阿里巴巴是怎么做的?

首先,阿里巴巴采用了统一接入层的架构,并配备管控平台。这样的设计解决了很多问题,比如证书分散且落地不安全、软件版本难以维护、配置过多、难以标准和自动化、VIP过多等。

其次,性能调优。“双十一”系统交易创建峰值达到每秒钟14万笔,支付峰值达到每秒钟8.59万笔。即便如此,已经启用了全站HTTPS的淘宝、天猫依然保证了网站和移动端的访问、浏览、交易等操作的顺畅、平滑。

而据阿里巴巴技术保障部技术专家李振宇介绍,阿里电商在启用全站HTTPS后,性能不降反升,用户访问网站和移动端更为流畅。

阿里巴巴通过各种技术来保证优异的性能。比如以域名收敛的方式减少建连;采用HSTS技术去掉80到443的302跳转,通过Session复用来提高建连速度和降低服务器压力;对证书链进行优化以减少证书的传输量等等。

第三,将安全和兼容做到极致。阿里巴巴采用了双证书模式,即SHA-1和SHA-256,此举的目的在于最大限度地保证安全和兼容性。同时,阿里巴巴使用的是兼容性最宽泛的OV证书,全面支持单域名、多域名和泛域名,尽管费用较为昂贵,但能够满足多种浏览器访问,保证最好的用户体验。据了解,阿里巴巴挑选了两家业内顶级的证书供应商,之所以如此,主要是从冗余的角度考虑,如果一家证书出现问题,可以迅速地切换至另一证书,以保证用户不受影响。另外,阿里巴巴还引入了泛域名SAN证书。

值得一提的是,“双十一”全天的交易额高达912.17亿元,其中在移动端交易额占比68%。也就是说,阿里电商启用全站HTTPS后并未对移动端的体验产生负面影响,反而有着更为积极的作用,而这都是通过技术手段进行调优的结果。

据悉,阿里巴巴无线技术团队克服了大量技术难题,实现无线加密网络传输的1秒钟法则。

淘宝全站HTTPS 百万页面改造技术细节大起底

1.无线客户端多端多版本适配性、兼容性的复杂,无线升级成本无疑比PC升级成本高很多。为了降低研发成本,在无线服务器和客户端实现统一的中间层提供统一收敛域名切换到HTTPS功能,使得业务切换无感知。

2.无线基于TLS1.3协议进行了改造,在保障链路安全的情况下优化SSL握手过程实现零耗时提升了用户体验,摒弃传统的RSA算法,转而使用了最新的ECDH密钥交换算法,极大地提升了服务端的性能。

3.无线网络层实现了调度中心,通过该控制中心,我们可以从版本、域名、流量比例等多维度控制HTTPS流量切换,保证整个切换过程是可控、对用户无感知的,有问题可以极速回滚。

据统计,经过改造后,阿里电商坐拥“世界上最大的HTTPS流量”,这其中涉及数百个应用、超百万个页面。没有足够坚定的决心和巨量的资源投入,显然是不行的。

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
Java 应用服务中间件 网络安全
Tomcat配置ssl协议及遇到的问题https页面无法访问
Tomcat配置ssl协议及遇到的问题https页面无法访问
|
Web App开发 缓存 JavaScript
如何处理页面关闭时发送HTTP请求?
在实际项目开发中,可能会遇到这样的业务问题:如何在用户离开或关闭页面时发送HTTP请求给服务端?可能有人会觉得页面都关闭了,还需要发送什么请求,完全没必要噻。但如果真有这样的业务需求落到自己的头上,那么我们应该如何来实现呢?
1825 0
如何处理页面关闭时发送HTTP请求?
|
安全 JavaScript Java
记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
1230 0
记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
|
5月前
|
安全 开发者
在HTTPS安全页面中加载HTTP不安全的内容,如何绕过安全警告?
在HTTPS安全页面中加载HTTP不安全的内容,如何绕过安全警告?
|
5月前
|
Web App开发 JavaScript 前端开发
https 页面中引入 http 资源的解决方式
https 页面中引入 http 资源的解决方式
|
9月前
|
Android开发
Electron使用webview加载部分https页面时,会因为证书出现白屏
Electron使用webview加载部分https页面时,会因为证书出现白屏
375 0
|
安全 JavaScript Java
[※]记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
[※]记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
1071 0
[※]记一次网站全站http升级为https的过程,websocket : ws升级为wss遇到的问题等
|
开发框架 安全 .NET
HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效——错误代码:0x8007000d
最近在课上学习IIS发布.NET Core项目出现HTTP错误500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效——错误代码:0x8007000d
HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效——错误代码:0x8007000d
|
Web App开发 JavaScript 前端开发
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
1166 0
JavaScript 技术篇-navigator.permissions读取chrome剪切板权限获取不生效原因:只有在https协议下使用有效。手动设置chrome页面剪切板读取权限方法
|
域名解析 网络协议 应用服务中间件
博客全站升级https记录,七牛云链接处理
首先在阿里云控制台申请一个免费SSL证书,我这里域名托管在阿里云的所以为了方便就在这里申请。