免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

【专家坐堂】全站 HTTPS——如何规划、部署、优化?(获奖名单已公布) [复制链接]

论坛徽章:
0
51 [报告]
发表于 2016-12-15 22:03 |只看该作者
forgaoqiang 发表于 2016-12-05 14:14
回复 27# Godbach
好吧 ( ⊙ o ⊙ )

移动端不提示证书非法也是一个问题

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
52 [报告]
发表于 2016-12-16 14:49 |只看该作者
InfoHunter 发表于 2016-12-15 22:03
移动端不提示证书非法也是&# ...

基本上都会提示吧

至少很多应用会提醒 比如UC、淘宝、微信等 用户很少看明白怎么回事


论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-25 06:20:002017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:2115-16赛季CBA联赛之新疆
日期:2018-04-23 13:55:2315-16赛季CBA联赛之辽宁
日期:2018-07-23 08:59:12
53 [报告]
发表于 2016-12-17 14:38 |只看该作者
回复 30# Godbach

那些开发的事情啦

论坛徽章:
0
54 [报告]
发表于 2016-12-21 13:16 |只看该作者
1.    网站改造 HTTPS 过程中跳过的坑或者要注意的问题
1.1 近期我们公司也在逐步来上https,虽然我们在上之前做了一定的准备工作,但是上之后也遇上一些问题,我们指定的步骤是先上HTTPS,再上HTTP/2,测试我们的官网后,就像楼上说的那样,出现HTTP的资源无法访问,必须让页面加载的第三方资源也支持HTTPS。出现这个问题后,我找研发、测试、前端、APP各部门负责人开会讨论各自团队在上线HTTPS后的支持以及问题应对,例如将https:\\ http:\\ 都只保留\\来做自适应。
1.2 在部署HTTPS的时候,还是建议服务器的CPU使用E5 V3 V4的,主要原因是这两个系列的CPU支持AESNI,当然能够使用CPU AESNI引擎的openssl版本是1.0.2以上版本,1.0.1是不支持的,所以不管是Nginx还是Haproxy来做都需要重新编译(可以顺道带上chacha20的patch)。编译Nginx和Haproxy时建议使用cflags设置-mtune=native(我是这么用的)
1.3 编译openssl的话,默认最好带上
no-ssl3 no-ssl3-method编译,从OPENSSL就关闭SSLV3的支持,免得一些SA大意在Nginx和haproxy中忘记关闭SSL V3
1.4 AES-NI默认内核是没加载的,所以需要手动加载AESNI模块,modprobe aesni-intel,当然可以在内核里把这个功能默认就编译到kernel中,而不是以模块形式启用,当然openssl engine查看的时候是看不到AESNI引擎的。
1.5 SNI问题,openssl 1.0.2默认就支持SNI了,openssl 1.0.1默认不开启,在Nginx和Haproxy配置的时候必须注意OPENSSL版本,如果不得不用1.0.1的openssl在编译的时候需要加上enable-tlsext,另外判断nginx是否支持了SNI,可以用nginx -V,如果有TLS SNI support enabled ,那SNI就是开启的
1.6 Nginx使用SNI问题不大,Haproxy还是有点差别的,比如普通的HTTPS和HTTP/2,用到的参数貌似还不一样,比如req.ssl_sni和ssl_fc_sni(还请Godbach简单聊聊啊)
2.    影响甚至导致无法全站 HTTPS 的痛点或者障碍
我认为还是影响HTTPS部署的因素有如下几个:
从APP来说,比如一些算法JDK 1.8支持的JDK 1.7就不支持,那高效的算法要使用,估计还得升级JDK,这个升级回来带来不确定性
从手机端系统来说,安卓不同的版本支持的算法也不一样,做兼容性测试,工作量也不小
从PC端来说,浏览器的兼容性、证书的类型啥的也都多少影响一些
代码来说,如果调用第三方的URL,第三方URL如果不是HTTPS还真是个头疼的事情
3.    证书申请以及私钥管理上的一些注意事项
用商业的证书我觉得问题不大
免费证书我觉得还是做好自动更新相关的东东吧

4.    部署 HTTPS 后,优化手段、遇到的问题以及解决方法
正常的业务部署HTTPS后,我认为还是算法的优化上,需要多做测试,我们目前正在进行中
我们业务里有Varnish,直接Varnish部署HTTPS感觉还是不靠谱,所以打算用其提供的hitch来做ssl proxy,将解密后的数据发送到Varnish

5.    负载均衡下或者 CDN 中部署 HTTPS 的一些经验
负载均衡下,怎么说呢,要是硬件负载均衡本身就带了SSL加速卡,没的说
软件负载均衡,除了上面说的SNI,还有AESNI外,性能还有更高要求那就得上专门的硬件加速卡了。
为了使用HTTPS,我们自己对Haproxy和OpenResty所用的系统又重新做了定制化,主要就是AESNI的支持,让其变成默认支持,而不是模块化支持

评分

参与人数 1可用积分 +10 收起 理由
Godbach + 10 赞一个!

查看全部评分

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
55 [报告]
发表于 2016-12-21 14:00 |只看该作者
回复 54# 撒加

灰常给力。赞一个!

论坛徽章:
0
56 [报告]
发表于 2016-12-21 22:36 |只看该作者
回复 55# Godbach

目前的研究成果也就这些了,后续再补充HTTP/2的,哈哈

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
57 [报告]
发表于 2016-12-23 01:08 |只看该作者
回复 56# 撒加
分析的内容很丰富啊。



论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
58 [报告]
发表于 2016-12-23 01:08 |只看该作者
回复 56# 撒加
1.6 Nginx使用SNI问题不大,Haproxy还是有点差别的,比如普通的HTTPS和HTTP/2,用到的参数貌似还不一样,比如req.ssl_sni和ssl_fc_sni(还请Godbach简单聊聊啊)

这个地方你的问题再具体一点? 你是说 HAProxy 对 SNI 的支持问题吗?


论坛徽章:
0
59 [报告]
发表于 2016-12-23 10:29 |只看该作者
回复 58# Godbach

在查阅相关资料的时候,发现个现象就是如果仅仅是Haproxy启用HTTPS,要使用SNI的话,用的指令是req.ssl_sni,如果是启用HTTPS且私用ALPN支持HTTP/2,看到使用的指令是ssl_fc_sni

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
60 [报告]
发表于 2016-12-24 21:25 |只看该作者
回复 59# 撒加

ssl_fc_snireq.ssl_sni (HAProxy v1.7 不推荐使用 req_ssl_sni)最根本的区别:
  • ssl_fc_sni 是在 SSL offload 开启的情况下匹配 SNI 的。也就是,你配置 bind 的时候,还需要明确开启了 SSL,配置了证书和私钥。这个情况下,OpenSSL 库本身就帮你获取了这些信息的。
  • req.ssl_sni 是在没有 SSL offload 时使用的。也就是你只配置了 TCP 模式,并且没有配置 SSL。其实就是一个 DPI(深度报文检测) 的过程,从 client 端的 TCP 请求数据中识别出来是 SSL 的传输,然后再此基础上提取 SNI。

这个应该是在 HAProxy 引入 SSL 之后,就是这么个区别的。当时我搞 SSL 的时候,特意看了一下这个区别。



您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP