主流瀏覽器直接信任Let’s Encrypt根證書,宣告他成為頂級CA

8月6號,Let’s Encrypt 官方博客發(fā)表了一篇文章Let's Encrypt Root Trusted By All Major Root Programs,其中關(guān)鍵信息引用如下:

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

意思就是本月底,所有的微軟產(chǎn)線(比如 Edge)也將直接信任 Let’s Encrypt 的根證書(ISRG Root X1),從而世界上所有的主流產(chǎn)品都直接支持其根證書了,那么這意味著什么?什么是直接信任?對使用 Let’s Encrypt 的證書的人有何影響?且聽我慢慢道來。

意義

這一消息表示:

  • Let’s Encrypt 成為了頂級 CA 機構(gòu),擺脫了二級 CA 機構(gòu)的身份。
  • 代表主流產(chǎn)品對 Let’s Encrypt 的認可,進一步突顯了他的權(quán)威性。

也許你聽的暈暈乎乎的,為了解明白,我們必須理解證書鏈的概念。

證書鏈

證書鏈?zhǔn)且粋€信任鏈,關(guān)系見下圖:

信任鏈原理

以 Let’s Encrypt 簽發(fā)的證書為例,申請者申請的證書可以稱為服務(wù)器證書,運行 openssl 查看證書命令,關(guān)鍵信息如下:

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

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

這表示服務(wù)器證書是 *.simplehttps.com,它被中間證書 Let's Encrypt Authority X3 進行數(shù)字簽名,也就是說服務(wù)器證書被 Authority X3 中間證書信任。

該中間證書就是 Let's Encrypt CA 機構(gòu)的,用于簽發(fā)服務(wù)器證書,需要說明的是中間證書可能有多張,迭代簽名。

那么中間證書被誰簽名了?運行下列命令:

$ 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 機構(gòu)的根證書)簽名的,同學(xué)們可能很奇怪了,為啥 Let's Encrypt 不用自己的根證書簽名其中間證書?。窟@是一個好問題。

根本原因就是 Let's Encrypt 作為一個新興 CA 機構(gòu),歷史并不悠久,大部分瀏覽器不可能直接信任其根證書,不信任就無法構(gòu)建信任基礎(chǔ),怎么辦?Let's Encrypt 為了快速投入運營,使用 IdenTrust CA 機構(gòu)的根證書(被主流產(chǎn)品直接信任,比如 Chrome 可信任根證書列表包含該根證書)對其中間證書進行交叉認證,從而主流產(chǎn)品就能信任 Let's Encrypt 服務(wù)器證書了,最終信任鏈鏈條:服務(wù)器證書>Let's Encrypt Authority X3 中間證書->DST Root CA X3 根證書

同學(xué)們?nèi)绻彩褂?Let's Encrypt 證書,可以看一下證書鏈,打開 Chrome 開發(fā)者工具就能知曉,如圖:

Let's Encrypt 新證書鏈

Let's Encrypt 有二條證書鏈

本質(zhì)上,Let's Encrypt 有兩條證書鏈(早就存在了)如下圖:

Let's Encrypt 證書鏈結(jié)構(gòu)

綠色線條就是目前采用的證書鏈,如果主流瀏覽器都信任了 Let's Encrypt 根證書(ISRG Root X1),那么就可以采用紅色線條標(biāo)示的證書鏈了。也就是信任鏈鏈條:服務(wù)器證書>Let's Encrypt Authority X3 中間證書->ISRG Root X1 根證書。

經(jīng)過我的配置,我的網(wǎng)站證書鏈如下圖:

Let's Encrypt 舊證書鏈

同學(xué)們可能會問,這是如何做到的?別著急。

使用新的證書鏈

本質(zhì)上,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 服務(wù)器證書進行簽名(簽名用的私鑰是一樣的),這是關(guān)鍵,這兩個證書分別被 ISRG Root X1 和 DST Root CA X3 簽名。

聰明的同學(xué)可能想到了,在申請 Let's Encrypt 證書的時候,Let's Encrypt 目前使用 Let’s Encrypt Authority X3 (IdenTrust cross-signed) 簽名,申請者獲取到證書后,配置證書鏈(服務(wù)器證書+中間證書)后提供 HTTPS 服務(wù)。瀏覽器校驗證書,一看中間證書是 Let’s Encrypt Authority X3 (IdenTrust cross-signed) 簽名,最終找到 IdenTrust 的根證書完成簽名驗證。

那今天博客所說的內(nèi)容表示,在申請 Let's Encrypt 證書的時候,Let's Encrypt 可以使用 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 簽名,申請者獲取到證書后,配置證書鏈(服務(wù)器證書+中間證書)后提供 HTTPS 服務(wù)。瀏覽器校驗證書,一看中間證書是 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 簽名,最終找到 Let's Encrypt ISRG Root X1 根證書完成簽名驗證。

可實際上,目前你申請證書的時候,Let's Encrypt 仍然使用 IdenTrust cross-signed 中間證書簽名服務(wù)器證書,原因何在,主流產(chǎn)品(比如 Chrome)雖然已經(jīng)直接信任其根證書了,但這些產(chǎn)品有很多舊版本存在,如果不更新,那么這些版本仍然不信任 Let’s Encrypt 根證書,Let’s Encrypt 預(yù)估 5 年以后,這些舊版本將不復(fù)存在,那個時候 Let’s Encrypt 就可以大膽用 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 中間證書簽發(fā)服務(wù)器證書了。

難倒我們了嗎?是否可以手動讓你的網(wǎng)站使用新的證書鏈呢?答案是可以(如果不考慮舊產(chǎn)品線不信任 Let’s Encrypt ISRG Root X1 根證書的問題)。

上面講到,服務(wù)器證書可以任意使用下面的中間證書簽名:

  • Let’s Encrypt Authority X3 (IdenTrust cross-signed),綠色線條
  • Let’s Encrypt Authority X3 (Signed by ISRG Root X1) ,紅色線條

任意的關(guān)鍵就是,這兩個證書的簽名私鑰是一樣的,我們是否可以自行配置證書鏈呢(紅色線條)?可以:

# 下載 Authority X3 (Signed by ISRG Root X1) 中間證書
$ wget "https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt"

# 生成新的證書鏈,包括服務(wù)器證書+中間證書
$ cp cert1.pem letsencryptauthorityx3.pem.txt > fullchain1.pem

然后重新啟動你的服務(wù)器,使用 Chrome 瀏覽器開發(fā)者工具觀察網(wǎng)站證書鏈,是不是結(jié)果如下圖:

Let's Encrypt 新證書鏈

我最近寫了一本書《深入淺出HTTPS:從原理到實戰(zhàn)》,歡迎去各大電商購買,也歡迎關(guān)注我的公眾號(yudadanwx,虞大膽的嘰嘰喳喳),了解我最新的博文,未來可能就不在簡書發(fā)文了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS面試中熟悉常見算法 1、 對以下一組數(shù)據(jù)進行降序排序(冒泡排序)?!?4,17,85,13,9,54,76,...
    修一辰閱讀 474評論 0 0
  • 就寢:22:50 起床:06:08 A.2018年度目標(biāo)及關(guān)鍵點: * 工作目標(biāo):提高收入30% ...
    俞小寧閱讀 171評論 0 0
  • 專業(yè)考題類型管理運行工作負責(zé)人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,488評論 0 13
  • 六月有什么——炎熱,離別,雨。 去年六月的時候,我畢業(yè)了。走的時候,你扎著麻花辮,T恤加碎花裙,白色的帆布鞋被雨水...
    矜涵閱讀 539評論 0 5
  • 三原則:圖原創(chuàng),文原創(chuàng),詩原創(chuàng)。 尋一清凈處 寫文來簡書 短短幾個月 簡書變知乎 首頁啥都有 不見詩與書 初心在何...
    秋水飲馬閱讀 599評論 93 60

友情鏈接更多精彩內(nèi)容