主流浏览器直接信任Let’s Encrypt根证书,宣告他成为顶级CA

8月6号,Let’s Encrypt 官方博客发表了一篇文章Let's Encrypt Root Trusted By All Major Root Programs,其中关键信息引用如下:

As of the end of July 2018, the Let’s Encrypt root, ISRG Root X1, is directly trusted by Microsoft products. Our root is now trusted by all major root programs, including Microsoft, Google, Apple, Mozilla, Oracle, and Blackberry

意思就是本月底,所有的微软产线(比如 Edge)也将直接信任 Let’s Encrypt 的根证书(ISRG Root X1),从而世界上所有的主流产品都直接支持其根证书了,那么这意味着什么?什么是直接信任?对使用 Let’s Encrypt 的证书的人有何影响?且听我慢慢道来。

意义

这一消息表示:

  • Let’s Encrypt 成为了顶级 CA 机构,摆脱了二级 CA 机构的身份。
  • 代表主流产品对 Let’s Encrypt 的认可,进一步突显了他的权威性。

也许你听的晕晕乎乎的,为了解明白,我们必须理解证书链的概念。

证书链

证书链是一个信任链,关系见下图:

信任链原理

以 Let’s Encrypt 签发的证书为例,申请者申请的证书可以称为服务器证书,运行 openssl 查看证书命令,关键信息如下:

$ openssl x509 -text -in cert1.pem -noout

    Issuer: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
    Subject: CN = *.simplehttps.com

这表示服务器证书是 *.simplehttps.com,它被中间证书 Let's Encrypt Authority X3 进行数字签名,也就是说服务器证书被 Authority X3 中间证书信任。

该中间证书就是 Let's Encrypt CA 机构的,用于签发服务器证书,需要说明的是中间证书可能有多张,迭代签名。

那么中间证书被谁签名了?运行下列命令:

$ openssl x509 -text -in chain1.pem -noout

    Issuer: O = Digital Signature Trust Co., CN = DST Root CA X3
    Subject: C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3

中间证书是被 DST Root CA X3 根证书(IdenTrust CA 机构的根证书)签名的,同学们可能很奇怪了,为啥 Let's Encrypt 不用自己的根证书签名其中间证书啊?这是一个好问题。

根本原因就是 Let's Encrypt 作为一个新兴 CA 机构,历史并不悠久,大部分浏览器不可能直接信任其根证书,不信任就无法构建信任基础,怎么办?Let's Encrypt 为了快速投入运营,使用 IdenTrust CA 机构的根证书(被主流产品直接信任,比如 Chrome 可信任根证书列表包含该根证书)对其中间证书进行交叉认证,从而主流产品就能信任 Let's Encrypt 服务器证书了,最终信任链链条:服务器证书>Let's Encrypt Authority X3 中间证书->DST Root CA X3 根证书

同学们如果也使用 Let's Encrypt 证书,可以看一下证书链,打开 Chrome 开发者工具就能知晓,如图:

Let's Encrypt 新证书链

Let's Encrypt 有二条证书链

本质上,Let's Encrypt 有两条证书链(早就存在了)如下图:

Let's Encrypt 证书链结构

绿色线条就是目前采用的证书链,如果主流浏览器都信任了 Let's Encrypt 根证书(ISRG Root X1),那么就可以采用红色线条标示的证书链了。也就是信任链链条:服务器证书>Let's Encrypt Authority X3 中间证书->ISRG Root X1 根证书

经过我的配置,我的网站证书链如下图:

Let's Encrypt 旧证书链

同学们可能会问,这是如何做到的?别着急。

使用新的证书链

本质上,Let's Encrypt 中间证书 Authority X3 有两个证书,分别是:

  • Let’s Encrypt Authority X3 (IdenTrust cross-signed)
  • Let’s Encrypt Authority X3 (Signed by ISRG Root X1)

他们都可以对 Let's Encrypt 服务器证书进行签名(签名用的私钥是一样的),这是关键,这两个证书分别被 ISRG Root X1 和 DST Root CA X3 签名。

聪明的同学可能想到了,在申请 Let's Encrypt 证书的时候,Let's Encrypt 目前使用 Let’s Encrypt Authority X3 (IdenTrust cross-signed) 签名,申请者获取到证书后,配置证书链(服务器证书+中间证书)后提供 HTTPS 服务。浏览器校验证书,一看中间证书是 Let’s Encrypt Authority X3 (IdenTrust cross-signed) 签名,最终找到 IdenTrust 的根证书完成签名验证。

那今天博客所说的内容表示,在申请 Let's Encrypt 证书的时候,Let's Encrypt 可以使用 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 签名,申请者获取到证书后,配置证书链(服务器证书+中间证书)后提供 HTTPS 服务。浏览器校验证书,一看中间证书是 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 签名,最终找到 Let's Encrypt ISRG Root X1 根证书完成签名验证。

可实际上,目前你申请证书的时候,Let's Encrypt 仍然使用 IdenTrust cross-signed 中间证书签名服务器证书,原因何在,主流产品(比如 Chrome)虽然已经直接信任其根证书了,但这些产品有很多旧版本存在,如果不更新,那么这些版本仍然不信任 Let’s Encrypt 根证书,Let’s Encrypt 预估 5 年以后,这些旧版本将不复存在,那个时候 Let’s Encrypt 就可以大胆用 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 中间证书签发服务器证书了。

难倒我们了吗?是否可以手动让你的网站使用新的证书链呢?答案是可以(如果不考虑旧产品线不信任 Let’s Encrypt ISRG Root X1 根证书的问题)。

上面讲到,服务器证书可以任意使用下面的中间证书签名:

  • Let’s Encrypt Authority X3 (IdenTrust cross-signed),绿色线条
  • Let’s Encrypt Authority X3 (Signed by ISRG Root X1) ,红色线条

任意的关键就是,这两个证书的签名私钥是一样的,我们是否可以自行配置证书链呢(红色线条)?可以:

# 下载 Authority X3 (Signed by ISRG Root X1) 中间证书
$ wget "https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt"

# 生成新的证书链,包括服务器证书+中间证书
$ cp cert1.pem letsencryptauthorityx3.pem.txt > fullchain1.pem

然后重新启动你的服务器,使用 Chrome 浏览器开发者工具观察网站证书链,是不是结果如下图:

Let's Encrypt 新证书链

我最近写了一本书《深入浅出HTTPS:从原理到实战》,欢迎去各大电商购买,也欢迎关注我的公众号(yudadanwx,虞大胆的叽叽喳喳),了解我最新的博文,未来可能就不在简书发文了。

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

推荐阅读更多精彩内容

  • iOS面试中熟悉常见算法 1、 对以下一组数据进行降序排序(冒泡排序)。“24,17,85,13,9,54,76,...
    修一辰阅读 412评论 0 0
  • 就寝:22:50 起床:06:08 A.2018年度目标及关键点: * 工作目标:提高收入30% ...
    俞小宁阅读 134评论 0 0
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,966评论 0 13
  • 六月有什么——炎热,离别,雨。 去年六月的时候,我毕业了。走的时候,你扎着麻花辫,T恤加碎花裙,白色的帆布鞋被雨水...
    矜涵阅读 443评论 0 5
  • 三原则:图原创,文原创,诗原创。 寻一清净处 写文来简书 短短几个月 简书变知乎 首页啥都有 不见诗与书 初心在何...
    秋水饮马阅读 534评论 93 60