使用 Let's Encrypt 保護你的網站
未加密的 HTTP 會話暴露於濫用之中,用 Let's Encrypt 把它們保護起來。
曾幾何時,透過證書授權機構搭建基本的 HTTPS 網站需要每年花費數百美元,而且搭建的過程複雜且容易出錯。現在我們免費使用 Let's Encrypt,而且搭建過程也只需要幾分鐘。
為何進行加密?
為什麼要加密網站呢?這是因為未經加密的 HTTP 會話可以被多種方式濫用:
- 竊聽使用者資料包
- 捕捉使用者登入
- 注入廣告和“重要”訊息
- 注入木馬
- 注入 SEO 垃圾郵件和連結
- 注入挖礦指令碼
網路服務提供商就是最大的程式碼注入者。那麼如何挫敗它們的非法行徑呢?你最好的防禦手段就是 HTTPS。讓我們回顧一下 HTTPS 的工作原理。
信任鏈
你可以在你的網站和每個授權訪問使用者之間建立非對稱加密。這是一種非常強的保護:GPG(GNU Privacy Guard, 參考如何在 Linux 中加密郵件)和 OpenSSH 就是非對稱加密的通用工具。它們依賴於公鑰-私鑰對,其中公鑰可以任意分享,但私鑰必須受到保護且不能分享。公鑰用於加密,私鑰用於解密。
但上述方法無法適用於隨機的網頁瀏覽,因為建立會話之前需要交換公鑰,你需要生成並管理金鑰對。HTTPS 會話可以自動完成公鑰分發,而且購物或銀行之類的敏感網站還會使用第三方證書頒發機構(CA)驗證證書,例如 Comodo、 Verisign 和 Thawte。
當你訪問一個 HTTPS 網站時,網站給你的網頁瀏覽器返回了一個數字證書。這個證書說明你的會話被強加密,而且提供了該網站資訊,包括組織名稱、頒發證書的組織和證書頒發機構名稱等。你可以點選網頁瀏覽器位址列的小鎖頭來檢視這些資訊(圖 1),也包括了證書本身。
圖1: 點選網頁瀏覽器位址列上的鎖頭標記檢視資訊
包括 Opera、 Chromium 和 Chrome 在內的主流瀏覽器,驗證網站數字證書的合法性都依賴於證書頒發機構。小鎖頭標記可以讓你一眼看出證書狀態;綠色意味著使用強 SSL 加密且運營實體經過驗證。網頁瀏覽器還會對惡意網站、SSL 證書配置有誤的網站和不被信任的自簽名證書網站給出警告。
那麼網頁瀏覽器如何判斷網站是否可信呢?瀏覽器自帶根證書庫,包含了一系列根證書,儲存在 /usr/share/ca-certificates/mozilla/
之類的地方。網站證書是否可信可以透過根證書庫進行檢查。就像你 Linux 系統上其它軟體那樣,根證書庫也由包管理器維護。對於 Ubuntu,對應的包是 ca-certificates
,這個 Linux 根證書庫本身是由 Mozilla 維護的。
可見,整個工作流程需要複雜的基礎設施才能完成。在你進行購物或金融等敏感線上操作時,你信任了無數陌生人對你的保護。
無處不加密
Let's Encrypt 是一家全球證書頒發機構,類似於其它商業根證書頒發機構。Let's Encrpt 由非營利性組織因特網安全研究小組(ISRG)創立,目標是簡化網站的安全加密。在我看來,出於後面我會提到的原因,該證書不足以勝任購物及銀行網站的安全加密,但很適合加密部落格、新聞和資訊門戶這類不涉及金融操作的網站。
使用 Let's Encrypt 有三種方式。推薦使用電子前沿基金會(EFF)開發的 Cerbot 客戶端。使用該客戶端需要在網站伺服器上執行 shell 操作。
如果你使用的是共享託管主機,你很可能無法執行 shell 操作。這種情況下,最簡單的方法是使用支援 Let's Encrpt 的託管主機。
如果你的託管主機不支援 Let's Encrypt,但支援自定義證書,那麼你可以使用 Certbot 手動建立並上傳你的證書。這是一個複雜的過程,你需要徹底地研究文件。
安裝證書後,使用 SSL 伺服器測試來測試你的伺服器。
Let's Encrypt 的電子證書有效期為 90 天。Certbot 安裝過程中新增了一個證書自動續期的計劃任務,也提供了測試證書自動續期是否成功的命令。允許使用已有的私鑰或證書籤名請求(CSR),允許建立萬用字元證書。
限制
Let's Encrypt 有如下限制:它只執行域名驗證,即只要有域名控制權就可以獲得證書。這是比較基礎的 SSL。它不支援組織驗證(OV)或擴充套件驗證(EV),因為運營實體驗證無法自動完成。我不會信任使用 Let's Encrypt 證書的購物或銀行網站,它們應該購買支援運營實體驗證的完整版本。
作為非營利性組織提供的免費服務,不提供商業支援,只提供不錯的文件和社群支援。
因特網中惡意無處不在,一切資料都應該加密。從使用 Let's Encrypt 保護你的網站使用者開始吧。
想要學習更多 Linux 知識,請參考 Linux 基金會和 edX 提供的免費課程 “Linux 入門”。
via: https://www.linux.com/learn/intro-to-linux/2018/3/protect-your-websites-lets-encrypt
作者:CARLA SCHRODER 選題:lujun9972 譯者:pinewall 校對:wxy
相關文章
- 使用Let’s Encrypt實現網站https化網站HTTP
- Let's Encrypt 泛域名httpsHTTP
- let's encrypt 申請 https 證書HTTP
- CentOS 下 Nginx 配置 Let’ s Encrypt 證書CentOSNginx
- Let's Encrypt 申請免費的 Https 證書HTTP
- 保護網站安全網站
- 免費 HTTPS 證書 Let's Encrypt 安裝教程HTTP
- 申請Let's Encrypt永久免費SSL證書
- 申請Let's Encrypt萬用字元SSL證書字元
- Let's Encrypt 泛域名證書申請及配置
- 免費SSL證書Let's Encrypt的替代:SSL.com
- Let's Encrypt 倡議新證書策略 提高抗網路攻擊能力
- 用 let's Encrypt 實現 HTTPS 示例( fasthttp 與net/http)HTTPAST
- Let's Encrypt - 免費SSL/TLS證書用起來TLS
- docker獲取Let's Encrypt永久免費SSL證書Docker
- 使用 acme.sh 從 Let’ s Encrypt 生成免費的萬用字元 SSL 證書ACM字元
- 更新:為 NGINX 配置免費的 Let's Encrypt SSL/TLS 證書NginxTLS
- 申請Let’s Encrypt萬用字元HTTPS證書(certbot版)字元HTTP
- 使用SRI保護你的網站免受第三方CDN惡意攻擊網站
- 申請Let’s encrypt免費證書,並自動續訂.
- Let's Encrypt 免費萬用字元 SSL 證書申請教程字元
- 使用 KubeEye 為你的 K8s 叢集安全保駕護航K8S
- 用 Python 寫了一個 Let's Encrypt 的 wildcard 證照小工具Python
- 好用且免費的防火牆推薦,幫你保護網站安全!防火牆網站
- 通過 Certbot 安裝 Let's Encrypt 證書,來實現全站的 HTTPS 訪問HTTP
- 透過 Certbot 安裝 Let's Encrypt 證書,來實現全站的 HTTPS 訪問HTTP
- Let's Encrypt 2019:保持強勁增長 並帶來振奮人心的新功能
- Let's Encrypt 釋出ACME v2 正式支援萬用字元證書ACM字元
- 由於Bug,Let's Encrypt決定吊銷300多萬張證書!
- 解決Let’s Encrypt SSL證書”DNS problem: NXDOMAIN looking up A for xxx.com”DNSAI
- 使用jwt來保護你的介面服務JWT
- cert-manager + Let‘s Encrypt + DNS 實現基於K8S的https證書自動簽發DNSK8SHTTP
- 每日安全資訊:Let's Encrypt 釋出自己的證書透明度日誌
- 通過 Certbot 安裝 Let's Encrypt 證書,實現免費的全站 HTTPS 訪問HTTP
- Windows Server 下 IIS 申請部署 Let’s Encrypt 證書實現 免費 HTTPSWindowsServerHTTP
- 基於Let's Encrypt生成免費證書-支援多域名泛域名證書
- 使用Hashids來保護你的資料庫主鍵資料庫
- 【網路安全技術篇】保護網站免受劫持的方法有哪些?網站