Linux中國

SSL/TLS 加密新紀元 – Lets Encrypt

(題圖來自:muylinux.com)

ACME 協議

Let's Encrypt 的誕生離不開 ACME( 自動證書管理環境 Automated Certificate Management Environment )協議的擬定。

說到 ACME 協議,我們不得不提一下傳統 CA 的認證方式。Let's Encrypt 服務所簽發的證書為 域名認證證書 DV,Domain-validated Certificate ,簽發這類證書需要域名所有者完成以下至少一種 挑戰 Challenge 以證明自己對域名的所有權:

  • 驗證申請人對域名的 Whois 信息中郵箱的控制權;
  • 驗證申請人對域名的常見管理員郵箱(如以 admin@postmaster@ 開頭的郵箱等)的控制權;
  • 在 DNS 的 TXT 記錄中發布一條 CA 提供的字元串;
  • 在包含域名的網址中特定路徑發布一條 CA 提供的字元串。

不難發現,其中最容易實現自動化的一種操作必然為最後一條,ACME 協議中的 Simple HTTP 認證即是用一種類似的方法對從未簽發過任何證書的域名進行認證。該協議要求在訪問 http://域名/.well-known/acme-challenge/指定字元串 時返回特定的字元串。

然而實現該協議的客戶端 letsencrypt 做了更多——它不僅可以通過 ACME 協議配合服務端 Boulder 的域名進行 獨立 standalone 的認證工作,同時還可以自動配置常見的伺服器軟體(目前支持 Nginx 和 Apache)以完成認證。

Let's Encrypt 免費證書籤發服務

對於大多數網站管理員來講,想要對自己的 Web 伺服器進行加密需要一筆不小的支出進行證書籤發並且難以配置。根據早些年 SSL Labs 公布的 2010 年互聯網 SSL 調查報告(PDF) 指出超過半數的 Web 伺服器沒能正確使用 Web 伺服器證書,主要的問題有證書不被瀏覽器信任、證書和域名不匹配、證書過期、證書信任鏈沒有正確配置、使用已知有缺陷的協議和演算法等。而且證書過期後的續簽和泄漏後的吊銷仍需進行繁瑣的人工操作。

幸運的是 Let's Encrypt 免費證書籤發服務在經歷了漫長的開發和測試之後終於來臨,在 Let's Encrypt 官方 CA 被廣泛信任之前,IdenTrust 的根證書對 Let's Encrypt 的二級 CA 進行了交叉簽名使得大部分瀏覽器已經信任 Let's Encrypt 簽發的證書。

使用 letsencrypt

由於當前 Let's Encrypt 官方的證書籤發服務還未公開,你只能嘗試開發版本。這個版本會簽發一個 CA 標識為 happy hacker fake CA 的測試證書,注意這個證書不受信任。

要獲取開發版本請直接:

$ git clone https://github.com/letsencrypt/letsencrypt

以下的使用方法摘自 Let's Encrypt 官方網站。

簽發證書

letsencrypt 工具可以協助你處理證書請求和驗證工作。

自動配置 Web 伺服器

下面的操作將會自動幫你將新證書配置到 Nginx 和 Apache 中。

$ letsencrypt run

獨立簽發證書

下面的操作將會將新證書置於當前目錄下。

$ letsencrypt -d example.com auth

續簽證書

默認情況下 letsencrypt 工具將協助你跟蹤當前證書的有效期限並在需要時自動幫你續簽。如果需要手動續簽,執行下面的操作。

$ letsencrypt renew --cert-path example-cert.pem

吊銷證書

列出當前託管的證書菜單以吊銷。

$ letsencrypt revoke

你也可以吊銷某一個證書或者屬於某個私鑰的所有證書。

$ letsencrypt revoke --cert-path example-cert.pem
$ letsencrypt revoke --key-path example-key.pem

Docker 化 letsencrypt

如果你不想讓 letsencrypt 自動配置你的 Web 伺服器的話,使用 Docker 跑一份獨立的版本將是一個不錯的選擇。你所要做的只是在裝有 Docker 的系統中執行:

$ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt 
            -v "/etc/letsencrypt:/etc/letsencrypt" 
            -v "/var/lib/letsencrypt:/var/lib/letsencrypt" 
            quay.io/letsencrypt/letsencrypt:latest auth

你就可以快速的為自己的 Web 伺服器簽發一個免費而且受信任的 DV 證書啦!

Let's Encrypt 的注意事項

  • Let's Encrypt 當前發行的 DV 證書僅能驗證域名的所有權,並不能驗證其所有者身份;
  • Let's Encrypt 不像其他 CA 那樣對安全事故有保險賠付;
  • Let's Encrypt 目前不提供 Wildcard 證書;
  • Let's Encrypt 的有效時間僅為 90 天,逾期需要續簽(可自動續簽)。

對於 Let's Encrypt 的介紹就到這裡,讓我們一起目睹這場互聯網的安全革命吧。


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...

    Linux 的 sort 命令的七個有趣實例(二)

    在上一篇文章里,我們已經探討了關於sort命令的多個例子,如果你錯過了這篇文章,可以點擊下面的鏈接進行閱讀。今天的這篇文章作為上一篇文章的繼續,將討論關於sort命令的剩餘用法,與上一篇一起作為Linux sort命令的完整指南。 Linux 的 sort命令的14個有用的範例(一) 在我們繼續深入之前,先創建一個文本文檔month.txt,並且將上一次給出的數據填進去。 $ echo -e "marndecnoctnsepnfebnaug" month.txt ...