免費享用Let's Encrypt來保護你的網站
譯文【51CTO.com快譯】早在過去,借助證書機構安裝基本的HTTPS每年要花數百美元,而且這個過程很困難,安裝起來容易出錯。現在我們有了Let's Encrypt可以免費享用,而且整個過程只需要幾分鐘。
為什么要加密?
為什么要加密你的網站?因為未加密的HTTP會話面臨多種濫用現象:
- 竊聽你的用戶
- 獲取用戶登錄信息
- 注入廣告和“重要”信息
- 注入間諜軟件
- 注入SEO垃圾郵件和鏈接
- 注入加密貨幣礦工
如何挫敗不法分子的邪惡欲望?最有效的防御機制是HTTPS。不妨先看一下HTTPS的工作原理。
信任鏈
你可以在網站與允許訪問的所有人之間建立非對稱加密。這是一種很有效的保護:GPG和OpenSSH是用于非對稱加密的常見工具。這些工具依賴公鑰/私鑰密鑰對。你可以隨意共享公鑰,而私鑰必須受到保護,永遠不得共享。公鑰負責加密,私鑰負責解密。
然而,這個涉及多步驟的過程卻無法擴展以支持隨機的上網沖浪,因為它需要在建立會話之前交換公鑰,你還得生成和管理密鑰對。HTTPS會話使公鑰分配實現了自動化,購物和銀行等敏感網站由第三方證書機構(CA)來驗證,比如Comodo、Verisign或Thawte。
你在訪問HTTPS網站時,它會向你的Web瀏覽器提供數字證書。該證書驗證你的會話已經過強加密,并提供網站的信息,比如組織名稱、頒發證書的組織以及證書機構的名稱。你只要點擊Web瀏覽器地址欄中的小掛鎖,即可查看所有這些信息和數字證書(見圖1)。
圖1:點擊Web瀏覽器地址欄中的掛鎖,即可查看相關信息
各大Web瀏覽器(包括Opera、Firefox、Chromium和Chrome)都依賴證書機構來驗證網站數字證書的真實性。小掛鎖讓安全狀態一目了然:綠色代表SSL強加密和已驗證的身份。Web瀏覽器還會警告你防范惡意網站和SSL證書配置不正確的網站,并將這些自簽名證書視作不可信的證書。
那么Web瀏覽器怎么知道該信任誰呢?瀏覽器包含一個根存儲區(root store),這其實是一批根證書,存儲在/usr/share/ca-certificates/mozilla/中。網站證書針對根存儲區加以驗證。你的根存儲區由軟件包管理器來維護,就像Linux系統上的任何其他軟件那樣。在Ubuntu上,它們由ca-certificates軟件包提供。根存儲區本身由Mozilla for Linux來維護。
正如你所見,需要一套復雜的基礎設施來完成所有這些工作。如果你執行任何敏感的在線交易(例如購物或銀行業務),其實是信任大批未知的人來保護自己。
無處不在的加密
Let's Encrypt是一家全球證書機構,類似商業證書機構。Let's Encrypt由非營利性互聯網安全研究組織(ISRG)創建,目的是為了更容易保護網站。我認為用它來保護購物和銀行網站不夠安全,但適用于保護沒有金融交易的博客、新聞及信息網站。
至少有三種方法可使用Let's Encrypt。最好的方法是使用電子邊界基金會(EFF)維護的Certbot客戶軟件(https://certbot.eff.org/)。這需要通過shell訪問你的網站。
如果你在共享主機上,那么可能沒有shell訪問權限。在這種情況下,最容易的方法是使用支持Let's Encrypt的主機。
如果你的主機不支持Let's Encrypt,但支持自定義證書,那么你可以使用Certbot手動創建并上傳證書。這是個復雜的過程,所以你需要吃透說明文檔。
安裝好了證書后,可使用SSL Server Test(https://www.ssllabs.com/ssltest/)來測試你的網站。
Let's Encrypt數字證書有效期90天。你安裝Certbot時,它還會安裝計劃任務(cron job),以便自動續期,它還包含一個命令來測試這種自動續期是否有效。你可以使用現有的私鑰或證書簽名請求(CSR),它支持通配符證書。
局限性
Let's Encrypt存在一些限制:它只執行域名驗證,即它向控制域名的任何人頒發證書。這是基本的SSL。它不支持組織驗證(OV)或擴展驗證(EV),原因是無法使身份驗證實現自動化。我不會信任使用Let's Encrypt的銀行或購物網站,它們應該花大量的錢來購置包括身份驗證的整套軟件包。
作為由非營利組織維護的一項免費服務,它沒有商業支持,只有說明文檔和社區支持,不過兩者都很好。
互聯網充滿了邪惡。一切都應該加密。不妨用Let's Encrypt(https://letsencrypt.org/)來保護訪問你網站的那些人。
原文標題:Protect Your Websites with Let's Encrypt,作者:Carla Schroder
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】