一文解码:如何解决SSL/ TLS证书服务的高可用性?

背景介绍:2017年1月份,Google将Chrome 56中所有的 http站点标记为不安全,并对所有使用http方式的登录交互页发出醒目的“不安全”提示。

Apple自2015年WWDC大会开始,就在计划逐步推进实施ATS(App与后台服务器通讯强制使用https通讯)的实施,并在2017年WWDC大会上发布明确的时间节点,使https服务成为所有iOS及MAC上App的标配。

随着一些国际主流CA机构免费型DV SSL证书产品的出现,SSL/TLS证书的应用越来越广泛。SSL证书与域名一样,很快会成为每一个互联网站点不可或缺的基础服务要素。SSL/TLS证书的应用逐渐普及,越来越多的站点正在加速启用全站https服务。而在浏览器方面,Chrome及Firefox在所有新发布的浏览器版本中支持HSTS。已经有相当一部分站点启用了HSTS服务,彻底将http服务从支持的选项列表中移除。

如何保障SSL/TLS证书的安全及可靠?

全面的推广和应用SSL/TLS,会给站点安全性带来质的提升,彻底杜绝中间人攻击、网络劫持等攻击行为。但于此同时,考虑全站https之后的高可用保障时,SSL/TLS证书的安全性问题就逐步凸显出来。

如何确保https服务能够7*24不间断服务,不仅是企业内部IT运营团队需要考虑的问题,同时也对第三方CA服务商提出了更高的要求。

一旦第三方CA服务商出现运营或安全事故,将导致CA服务商的认证服务不可用。这将直接影响到使用企业IT服务的最终用户。无论是PC客户端浏、移动终端,还是API接口程序,都将有可能因此受到冲击,导致服务不可用。

因此在进行站点高保障安全运营维护工作的同时,要求SSL/TLS服务供应商也必须确保提供7*24不间断的高可用性服务,才能保障服务的可靠性。

SSL/TLS证书服务需注意这三点:

比起单纯的采用一张SSL/TLS证书,要确保高可用性保障的服务站点不受一家第三方CA认证机构的安全或运营事故牵连,同时使用两家不同的CA机构提供的高可用性SSL/TLS证书服务就显得尤为必要了。

无论是选择一张SSL/TLS证书服务,还是采用双证书方案同时使用两张SSL/TLS证书,都需要首先考察CA服务机构在服务保障上的工作是否有做足功课。

首先,CA机构在体量上,当然是越大越好。选择全球排名靠前的几家大型老牌CA机构的产品,能够确保CA机构的产品有更深厚的技术积累和安全保障。不会因为黑客组织或个人的攻击行为、系统安全系统漏洞、认证不规范等各种原因导致服务中断或被其他机构列入信任黑名单。

其次,CA服务商在此之前是否发生过大的安全或运营事故,是否遭受过严厉惩罚措施也是需要预先考察的。在事故发生后,CA服务商能否协调各方快速及时处理,并保障最小限度的影响客户的这种能力,也会给客户的证书应用保障加分。

最后,CA服务商在国内是否有服务加速。

证书签发后,在证书的使用过程中,通常还需要客户端请求CA系统获取证书有效性验证信息。证书的有效性验证,主要采用两种方式:OCSP及CRL。

OCSP的验证数据包体积较小,但对应答的及时性有要求。服务器延时越小,客户端验证速度越快。

CRL的验证数据包体积较大,但支持CRL支持缓存。可通过CA服务商的CDN加速服务网络分发。因此要求CA服务商在国内使用CDN加速服务也是很有必要的。

以下方案,主证书采用Digicert(原Symantec)品牌,备份证书采用Entrust或GlobalSign品牌。

如何部署实施高可用性双证书?

1.单证书在线

单证书在线方案实施起来非常简单,也很好理解其运行模式。主证书部署在服务器上,备份证书在主证书正常运行期间并不需要安装部署。一旦发生CA服务商安全或运营事故的情况,可通过手动更新配置启用备份证书并下线主证书,或通过自动化部署脚本自动切换到备份证书服务上。

主证书可按照应用需求,购买单域名、增强验证型带绿色地址栏的EV型、多域名或通配符等类型的证书。主证书的注册申请、维护和安装仍然使用原有的模式,不改变部署安装习惯。

备份证书推荐采用多域名,或通配符证书。只需要确保备份证书能够快速覆盖主证书的服务范围,通常不需要频繁的变更或重新注册申请。并且在需要应急启用时,能够快速变更替换主证书对应的服务。

2.源站服务器使用主证书,CDN、高防、WAF等服务使用备份证书

使用CDN、高防或WAF服务的用户,可在源站服务器上安装使用主证书,在CDN、高防、WAF等服务中使用备证书。

通常这类服务还可能委托给第三方CDN服务商来部署实施,所以这种模式下使用双证书方案时,选择两个不同的CA服务商提供的产品不仅能够规避CA运营或安全封信问题,同时源站与CDN、高防、WAF服务上配置的证书使用的证书密钥对也是不同的。任何一个证书出现的运营安全故障(如秘钥丢失、秘钥泄密)都可以快速定位责任主体。第三方CDN服务商的秘钥泄露也不会影响到源站的数据传输安全。

3.主备证书同时在线

成功案例解析

由于Chrome的bug导致所有2016年6月1号之后签发的证书,在Chrome 53、54下报证书透明度日志不可用错误(CT Log),某互联网头部企业启用了

Digicert(原Symantec)+ GlobalSign 双证书方案。针对IE、Firefox等浏览器,自动使用Digicert(原Symantec)证书,所有版本的Chrome浏览器访问,则自动启用GlobalSign证书。

一些超大型网站或应用,往往对SSL/TLS证书的兼容性有着非常严苛的要求,部分通过API接口对接的服务型产品,更对CA服务商的产品有着更高的兼容性要求。主证书使用大牌CA厂商的证书产品,往往能够获得最优的兼容性支持。但当遇到特定应用场景下的不兼容时,使用双证书应用解决方案,可以有效的规避超大型站点在客户端出现的SSL/TLS证书兼容性故障,同时确保API接入用户不会受到证书变更造成的不良影响。

通常,使用双证书同时在线的方案,需要使用到前端代理服务器通过http代理,UserAgent的识别,Proxy的https重定向来实现这一目标。

以下以Nginx的代理配置来简单介绍:

要实现根据用户 UA,自动重定向到策略指定的SSL/TLS证书服务站点上,首先要求后端必须有多台服务器负责处理https请求,并且在这些站点中分别部署主备两张不同的证书。其次,站点必须关闭HSTS,以避免客户端浏览器直接通过https方式访问服务器。用户必须是以默认的http服务访问服务器,然后由服务端的Proxy代理进行策略负载。

其配置原理如下:

if ( condition ){

  do_something

}if ( $http_user_agent = "wget" ){

  do_something

}if ( $http_user_agent ~ MSIE ){

  do_something else;

}

首先,配置好后端服务器策略,为不同的服务器群集配置其专用的证书

######配置IE浏览器后台服务器群集,并在群集服务器上配置Symantec证书upstream msiebackend {

      server 192.168.1.1;

      server 192.168.1.2;

      server 192.168.1.3;

}######配置Chrome浏览器后台服务器群集,并在群集服务器上配置GlobalSign证书upstream chromebackend  {

      server 192.168.1.4;

      server 192.168.1.5;

      server 192.168.1.6;

}######配置Firefox浏览器后台服务器群集,并在群集服务器上配置Symantec或其他证书upstream mozillabackend  {

      server 192.168.1.7;

      server 192.168.1.8;

      server 192.168.1.9;

}

最后,配置Porxy策略,将不同User Agent标识的客户端浏览器导向到特定的后台服务器上。示例如下:

server {

access_log logs/access.log;

error_log logs/error.log;

listen 80 default;

server_name baidu.com www.baidu.com;        ## 代理转发站点的域名location / {

proxy_pass https://msiebackend;                ## 默认使用Symantec证书if ($http_user_agent ~ Chrome ) {

proxy_pass https://chromebackend;            ## 为Chrome浏览器启用GlobalSign证书}if ($http_user_agent ~ Mozilla ) {

proxy_pass https://mozillabackend;            ## 为Firefox 浏览器启用Symantec或其他证书}

proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;

...s

}

完成以上配置后,重启Nginx,用不同浏览器客户端尝试访问您的站点,测试证书的部署策略是否生效。

如果再深入细致的对User Agent进行策略定制,将可以更细致的控制客户端的访问代理。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容