1. 程式人生 > >如何在Ubuntu 16.04上使用Let's Encrypt保護Apache2

如何在Ubuntu 16.04上使用Let's Encrypt保護Apache2

視訊教程 & 更多資源:https://zhaoshuquan.com/posts/6

介紹

本教程將向您展示如何在執行Apache作為Web伺服器的Ubuntu 16.04伺服器上設定Let's Encrypt的TLS / SSL證書。
Web伺服器中使用SSL證書來加密伺服器和客戶端之間的流量,為訪問應用程式的使用者提供額外的安全性。 讓我們的加密提供了一種免費獲取和安裝可信證書的簡便方法。

準備

為了完成本教程,你需要準備:

  • Ubuntu 16.04伺服器,非root使用者
  • Apache Web伺服器,一個或多個域名通過虛擬主機配置並指定ServerName
    當你準備好了之後,登入伺服器。

    第一步 - 安裝Let's Encrypt客戶端

    通過伺服器上執行的客戶端軟體獲取加密證書。官方客戶端稱為Certbot,其開發人員使用最新版本維護自己的Ubuntu軟體儲存庫。使用此儲存庫來安裝比Ubuntu提供的更新的版本是值得的。
    首先新增儲存庫:
$ sudo add-apt-repository ppa:certbot/certbot

你需要按ENTER鍵。然後,更新列表獲取最新儲存庫的包資訊:

$ sudo apt-get update

最後,使用apt-get命令安裝Certbot

$ sudo apt-get install python-certbot-apache

現在certbot Let's Encrypt client可以使用了。

第二步 - 設定SSL證書

使用Certbot為Apache生成SSL證書非常簡單。客戶端將自動獲取並安裝新的SSL證書,該證書對作為引數提供的域有效。
要執行互動式安裝並獲取僅涵蓋單個域的證書,執行如下命令,其中example.com是您的域:

$ sudo certbot --apache -d example.com

如果要安裝對多個域名或子域名有效的單個證書,可以將它們作為附加引數傳遞給該命令。 引數列表中的第一個域名將是Let's Encrypt用於建立證書的基本域名,因此我們建議您將裸頂級域名作為列表中的第一個,然後是任何其他子域名或別名:

$ sudo certbot --apache -d example.com -d www.example.com

在這個例子中,基本域名是example.com。
如果您有多個虛擬主機,則應為每個虛擬主機執行一次certbot,以便為每個主機生成新證書。您可以以任何方式跨虛擬主機分發多個域名和子域名。
安裝依賴項後,將向您提供自定義證書選項的分步指南。系統會要求您提供丟失金鑰恢復和通知的電子郵件地址,並且您可以選擇啟用http和https訪問,還是強制所有請求重定向到https。除非您特別需要未加密的http流量,否則通常最安全的是https。
安裝完成後,您應該能夠在/ etc / letsencrypt / live中找到生成的證書檔案。 您可以使用以下連結驗證SSL證書的狀態(不要忘記將example.com替換為您的基本域):

https://www.ssllabs.com/ssltest/analyze.html?d=example.com&latest

你現在可以使用https字首訪問你的網站了。

第三步 - 驗證Certbot自動更新

我們的加密證書只能持續90天。但是,我們安裝的certbot軟體包通過systemd計時器每天執行兩次certbot更新來為我們解決這個問題。在非系統發行版上,此功能由位於/etc/cron.d中的cron指令碼提供。該任務每天執行兩次,並將續訂任何在到期後30天內的證書。
執行一下命令,測試自動更新:

$ sudo certbot renew --dry-run

如果您沒有看到任何錯誤,那麼您已經完成了設定。必要時,Certbot將續訂您的證書並重新載入Apache以獲取更改。如果自動續訂過程失敗,我們的加密將向您指定的電子郵件傳送一條訊息,並在您的證書即將過期時發出警告。

總結

在本指南中,我們瞭解瞭如何從Let's Encrypt安裝免費的SSL證書,以保護使用Apache託管的網站。我們建議您不時檢視官方Let's Encrypt部落格以獲取重要更新,並閱讀Certbot文件以獲取有關Certbot客戶端的更多詳細資訊。

參考