轉自: https://linux.cn/article-6565-1.htmlhtml
根據 Let's Encrypt 官方博客消息,Let's Encrypt 服務將在下週(11 月 16 日)正式對外開放。linux
Let's Encrypt 項目是由互聯網安全研究小組(ISRG,Internet Security Research Group)主導並開發的一個新型數字證書認證機構(CA,Certificate Authority)。該項目旨在開發一個自由且開放的自動化 CA 套件,並向公衆提供相關的證書免費簽發服務以下降安全通信的財務、技術和教育成本。在過去的一年中,互聯網安全研究小組擬定了ACME 協議草案,並首次實現了使用該協議的應用套件:服務端 Boulder 和客戶端 letsencrypt。git
至於爲何 Let's Encrypt 讓咱們如此激動,以及 HTTPS 協議如何保護咱們的通信請參考淺談 HTTPS 和 SSL/TLS 協議的背景與基礎。github
Let's Encrypt算法
(題圖來自:muylinux.com)docker
Let's Encrypt 的誕生離不開 ACME(自動證書管理環境(Automated Certificate Management Environment))協議的擬定。瀏覽器
說到 ACME 協議,咱們不得不提一下傳統 CA 的認證方式。Let's Encrypt 服務所簽發的證書爲域名認證證書(DV,Domain-validated Certificate),簽發這類證書須要域名全部者完成如下至少一種挑戰(Challenge)以證實本身對域名的全部權:安全
admin@
、postmaster@
開頭的郵箱等)的控制權;不難發現,其中最容易實現自動化的一種操做必然爲最後一條,ACME 協議中的 Simple HTTP 認證便是用一種相似的方法對從未簽發過任何證書的域名進行認證。該協議要求在訪問 http://域名/.well-known/acme-challenge/指定字符串
時返回特定的字符串。服務器
然而實現該協議的客戶端 letsencrypt 作了更多——它不只能夠經過 ACME 協議配合服務端 Boulder 的域名進行獨立(standalone)的認證工做,同時還能夠自動配置常見的服務器軟件(目前支持 Nginx 和 Apache)以完成認證。app
對於大多數網站管理員來說,想要對本身的 Web 服務器進行加密須要一筆不小的支出進行證書籤發而且難以配置。根據早些年 SSL Labs 公佈的 2010 年互聯網 SSL 調查報告(PDF) 指出超過半數的 Web 服務器沒能正確使用 Web 服務器證書,主要的問題有證書不被瀏覽器信任、證書和域名不匹配、證書過時、證書信任鏈沒有正確配置、使用已知有缺陷的協議和算法等。並且證書過時後的續簽和泄漏後的吊銷仍需進行繁瑣的人工操做。
幸 運的是 Let's Encrypt 免費證書籤發服務在經歷了漫長的開發和測試以後終於來臨,在 Let's Encrypt 官方 CA 被普遍信任以前,IdenTrust 的根證書對 Let's Encrypt 的二級 CA 進行了交叉簽名使得大部分瀏覽器已經信任 Let's Encrypt 簽發的證書。
因爲當前 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
若是你不想讓 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 的介紹就到這裏,讓咱們一塊兒目擊這場互聯網的安全革命吧。
原文:https://github.com/vizv做者: vizv
原創:Linux中國 https://linux.cn/article-6565-1.html