聊聊全站HTTPS带来的技术挑战

日前写的文章里了讨论了数据传输的安全性的问题,最后一部分提到了通过HTTPS解决数据传输安全性的方案。那么一个新问题又来了,实施全站HTTPS的过程中,我们可能会遇到哪些技术问题?所以我今天和大家一起来算一下这个账,将技术成本理清楚。

聊聊全站HTTPS带来的技术挑战

准备工作

  1. 购买证书 ,网站使用HTTPS需要申请安全证书,目前来说还是比较繁琐的,而且对小公司来说是有一些成本在。另外,一定要选正规的机构,否则你的网站以后使用主流浏览器,如chrome访问,会被提示大大的警告,告诉用户该证书有问题。
  2. 页面里所有资源都要改成走https ,包括:图片、js、form表单等等,否则浏览器就会报警。
  3. 确保用到的CDN节点都支持HTTPS ,如果是自建IDC, 必须要保证全国甚至世界范围的 idc 和 cdn 节点,都得覆盖到。

CDN 使用 https 常见的方案有:

  1. 网站主提供私钥给 cdn,回源使用 http。
  2. cdn 使用公共域名,公共的证书,这样资源的域名就不能自定义了。回源使用 http。
  3. 仅提供动态加速,cdn 进行 tcp 代理,不缓存内容。
  4. 所有的开发、测试环境都要做https的升级 ,确保各级环境保持同一套网络协议。

性能方面的挑战

做好以上的技术准备后,我们还必须意识到实施HTTPS后带来的性能问题:

1.网络耗时增加,简单来说需要多几次握手,网络耗时变长,用户从http跳转到https还要一点时间。

对于这一块的优化,有Session ticket或者Session Cache等优化方案,不过也是各有优缺点。

2.计算耗时增加,需要更好机器性能,https要多做一次RSA校验。

对于这一块的优化,主要的方式是采用最新的openssl协议,使用硬件加速,优先使用ECC密钥等等。

安全方面的挑战

关于这一块,常见的安全隐患包含:降级攻击和重新协商攻击。

对于前者,攻击者伪造或者修改"client hello "消息,使得客户端和服务器之间使用比较弱的加密套件或者协议完成通信。对于重新协商攻击,是攻击者利用协商后安全算法偏弱,试图窃取传输内容,并且可以 不断发起完全握手请求,触发服务端进行高强度计算并引发服务拒绝。

当然,这一块,在基础厂商或者云产商的努力下,对于我们一般的业务用户,几乎不用关心协议层上面安全的问题。我在这里提出的目的,还是想说明一点,安全问题一直都不能放松。

最后一点总结

切换成HTTPS是必然趋势,相信会有越来越多的站点加入进来,而且完成后,它能给我们带来的收益是巨大的。对于我们技术团队而言,在实行之前,一定要考虑清楚它背后的技术成本,并做好对应的技术储备,做好HTTP切换为HTTPS的上线流程,确保万无一失。  


原文发布时间为:2017-10-09 

本文作者:佚名

本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.3/4.4 磁盘分区

2019独角兽企业重金招聘Python工程师标准>>> 添加虚拟磁盘 第一步,选择虚拟机中的“设置” 第二步,选择“添加硬盘” 第三步,选择_SCSI (推荐) # 保持默认 第四步,选择“创建新的虚拟磁盘…

RoboMaster 2017:机器人版的「王者农药」,工程师们的竞技时代

8月6日晚,第十六届全国大学生机器人大赛 RoboMaster 2017机甲大师赛在华润深圳湾体育中心“春茧”体育馆举行,关于这个比赛的盛况已经无需赘述,去年雷锋网参加上届比赛时,报道的是「像看了一场演唱会」,如果用演唱会来…

【初学者必读】:前端工程师的知识体系

下图是前端工程师图解: 前端开发的核心是HTML CSS JavaScript。本质上它们构成一个MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据和实现某种展现逻…

使用Prometheus监控Cloudflare的全球网络

Matt Bostock在SRECON 2017欧洲大会的演讲中,介绍了如何使用Prometheus实现对CloudFlare分布于全球的架构和网络的监控。Prometheus是一种基于度量进行监控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服务提供商。\\基…

开始吧

2019独角兽企业重金招聘Python工程师标准>>> 写C三年有余,在技术方面也算小有所成。准备在这里分享一些C进阶、Python、Golang技术文章。 CSDN博客地址: http://blog.csdn.net/godmaycry 以后博客同步更新。 转载于:https://my.oschina.net/u…

Exchange server 2013(十四)WSUS部署及组策略设置(2)

我们继续上一节未完的博客,继续我们的WSUS设置。[上一章节标题:Exchange server 2013(十四)WSUS部署及组策略设置(1) 网址:http://1183839.blog.51cto.com/blog/1173839/1182366] 首先单击自动审批,来修改审批规则,也就是说当wsus侦测到新的更…

用MATLAB结合四种方法搜寻罗马尼亚度假问题

选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪。 一、练习题目 分别用宽度优先、深度优先、贪婪算法和 A*算法求解“罗马利亚度假问题”。具体地图我这里不给出了&#xff0c…

[转]Paul Adams:为社交设计

为社交设计 Strong, Weak, and Temporary Ties by Paul Adams on 2010/04/09 PS:作者Paul Adams Facebook全球品牌体验总监 电话和手机聚集十亿用户用了15年的时间,而Facebook只用了9个月。我们看到越来越多的人开始用在线社交网络,这种网络好…

Android Framework中的Application Framework层介绍

Android的四层架构相比大家都很清楚,老生常谈的说一下分别为: Linux2.6内核层,核心库层,应用框架层,应用层。我今天重点介绍一下应用框架层Framework。 Framework层为我们开发应用程序提供了非常多的API,我…

ORACLE中创建如何创建表,并设置结构和默认值

使用select语句查看EMP表,根据COMM排序 默认情况下,空值会自动排列在尾部。 利用nulls last排序时将空值置底 利用nulls first排序时将空值置顶 例 创建一张出版社表 使用语句 create table 表名(列名1 类型,列名2 类型&#xff0…

暴风TV请来中国人工智能first lady冯雁教授任首席科学家

今日下午,暴风AI无屏电视发布会现场,暴风TV宣布邀请号称“中国人工智能first lady”、于香港科技大学任教的冯雁教授,担任暴风TV人工智能首席科学顾问。 冯雁教授于现场表示,选择暴风TV合作的重要原因,一方面在于其个人…

gulp之gulp.watch报错

gulpfile.js如下: 问题: 第一次改动文件,监听正常。再次改动,报错,如下: 解决: 总结: 意思,gulpsequence这玩意儿返回的thunk只能执行一次 转载于:https://www.cnblogs.c…

.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间,完善《.NET深入学习笔记》系列(基本都是.Net重要的知识点,我都做了详细的总结,是什么、为什么、和怎么实现)。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

VIM一般模式操作

2019独角兽企业重金招聘Python工程师标准>>> vim介绍 vim和vi几乎是一样的,唯一的区别就是当编辑一个文本时,使用vi不会显示颜色,而使用vim会显示颜色。 vim有三个模式:一般模式,编辑模式,命令模…

stateful set 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、创建pv # cat pv.yaml kind: PersistentVolume apiVersion: v1 metadata:name: task-pv-volumelabels:type: local spec:capacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/tmp/data" 2、…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了,就是没有时间写,遗憾啊。! 这几天做了个排序的自定义控件,在listbox item里放是button 并支持图标的交替变换 效果如下: 把代码贴上:1using System; 2using System.Collections.…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式:mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

mdm.Dialogs.promptModal()使用

这是prompt的扩展,提供了更多的功能,比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…

Gson的使用,对于不需要html escape的情况的处理

引入: 虽然是小问题,但是我还是需要记录下,我们知道,Google提供了一个Gson框架让我们高效的吧普通对象(一般VO为佳) 和json字符串之间进行互转。因为转换多数是和浏览器打交道的,所以一般默认的…

SpringBoot安装和创建简单的Web应用

SpringBoot安装 方式一: Eclipese->Help->Eclipse Marketplace ->Finde STS -> Install 注意:安装过程中挺慢,而且可能会报错,报错时需要重复以上步骤(重新安装STS后,安装进度接之前的继续进行…