SSL/TLS 加密新紀元 - Let's Encrypt

轉自: https://linux.cn/article-6565-1.htmlhtml

 

SSL/TLS 加密新紀元 - Let's Encrypt

 

根據 Let's Encrypt 官方博客消息,Let's Encrypt 服務將在下週(11 月 16 日)正式對外開放。linux

Let's Encrypt 項目是由互聯網安全研究小組(ISRG,Internet Security Research Group)主導並開發的一個新型數字證書認證機構(CA,Certificate Authority)。該項目旨在開發一個自由且開放的自動化 CA 套件,並向公衆提供相關的證書免費簽發服務以下降安全通信的財務、技術和教育成本。在過去的一年中,互聯網安全研究小組擬定了ACME 協議草案,並首次實現了使用該協議的應用套件:服務端 Boulder 和客戶端 letsencryptgit

至於爲何 Let's Encrypt 讓咱們如此激動,以及 HTTPS 協議如何保護咱們的通信請參考淺談 HTTPS 和 SSL/TLS 協議的背景與基礎github

Let's Encrypt

Let's Encrypt算法

(題圖來自:muylinux.com)docker

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)以完成認證。app

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 的測試證書,注意這個證書不受信任。

要獲取開發版本請直接:

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

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

簽發證書

letsencrypt 工具能夠協助你處理證書請求和驗證工做。

自動配置 Web 服務器

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

  1. $ letsencrypt run

獨立簽發證書

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

  1. $ letsencrypt -d example.com auth

續簽證書

默認狀況下 letsencrypt 工具將協助你跟蹤當前證書的有效期限並在須要時自動幫你續簽。若是須要手動續簽,執行下面的操做。

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

吊銷證書

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

  1. $ letsencrypt revoke

你也能夠吊銷某一個證書或者屬於某個私鑰的全部證書。

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

Docker 化 letsencrypt

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

  1. $ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
  2. -v "/etc/letsencrypt:/etc/letsencrypt" \
  3. -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
  4. 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 的介紹就到這裏,讓咱們一塊兒目擊這場互聯網的安全革命吧。

原文:https://github.com/vizv做者: vizv
原創:Linux中國  https://linux.cn/article-6565-1.html

相關文章
相關標籤/搜索