一年半前,Let’s Encrypt 項目進入公測。一年多前,當項目退出測試時,letsencrypt 客戶端從 ISRG 中分離出來,ISRG 繼續維護 Let’s Encrypt 服務器,並且 EFF 項目並重命名為 certbot但是,我們提供快速、輕鬆訪問免費域驗證證書以加密互聯網的使命保持不變。

本週標誌著 Certbot 發展的重要時刻 推薦的 Let’s Encrypt 客戶端,使用 0.14 版工具。

當letsencrypt 客戶端首次發佈時,它只支持使用現有HTTP 服務器的webroots。這可以是 letencrypt 臨時偵聽端口 80 並執行質詢的獨立模式,也可以是管理員在 ACME 服務器啟動身份驗證之前放置質詢的手動方法。 letencrypt 客戶端現在更強大了。

Apache Certbot 的 HTTPD 插件

當客戶更改為 EFF 項目時,出現的第一個主要功能是 Apache HTTPD 插件此插件允許 Certbot 應用程序自動配置 Web 服務器以在一個或多個 VirtualServer 安裝上使用證書。

注意:如果您在使用插件時遇到 SELinux 在強制模式下的問題,請在運行 certbot –apache 命令時使用 setenforce 0 命令切換到許可模式。然後使用 setenforce 1 切換到強制模式。此問題將在未來的更新中得到解決。

當使用 mod_ssl 啟動 Apache httpd 服務器時,該服務會自動生成一個自簽名證書。

瀏覽器不信任默認的 mod_ssl 自簽名證書。

然後運行以下命令:

certbot --apache

Certbot 會問你幾個問題。您也可以以非交互方式運行它並提前指定所有參數。

終端問題

片刻之後,您的 Apache 服務器將擁有一個有效的證書。

擁有有效的 SSL 證書

Certbot 的 Nginx 插件

nginx 插件在我的測試配置中需要一個域名,而 httpd 插件更改了默認的 SSL 虛擬主機。

這個過程類似於 httpd 插件。如果您沒有在命令行中指定任何參數,只需回答幾個問題。您的實例受到有效 SSL 證書的保護。

與 Python 3 的兼容性

Certbot 開發人員在過去幾個月中做了大量工作,以使 Certbot 與 Python 3 完全兼容。 0.12 版通過了我在構建 RPM 時運行的單元測試。然而,開發人員並不高興宣布它已經準備好,因為他們注意到現實世界測試中的一些邊緣案例失敗。我宣布我有性慾。此更改會將 Fedora 內聯到默認首選 Python 版本。

為了盡量減少可能出現的問題,Rawhide 和即將推出的 Fedora 26 將首先切換到使用 certbot-3,而 Fedora 25 將繼續使用 certbot-2 作為默認值。

執著於更新

最近的更新添加了一個用於自動更新證書的 systemd 計時器。計時器每天檢查證書是否需要更新。要啟用它,請使用以下命令:

systemctl enable --now certbot-renew.timer

/etc/sysconfig/certbot 中的配置可以更改續訂行為。這包括在續訂之前和之後運行掛鉤的選項,以及為處理的每個證書運行另一個掛鉤的選項。這些是全球行動。或者,可以在 /etc/letsencrypt/renewal 配置文件中為每個證書配置掛鉤。

建議使用某種形式的自動化,例如 systemd 計時器,以確保證書定期更新並且不會意外過期。

測試 SSL 安全性

1 SSL安全測試 提供 CentOS7 和 Apache 插件的 C 評估。 nginx 插件評級為 B。

當然,Red Hat 的默認設置往往是兼容的。如果您不需要支持較舊的客戶端,您可以縮小允許的密碼列表。

我用它來配置 Fedora 25 並在我的博客上獲得 A+ 評級。

SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite "EECDH+aRSA+AESGCM EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA !aNULL !eNULL !LOW !MEDIUM !SEED !3DES !CAMELLIA !MD5 !EXP !PSK !SRP !DSS !RC4"
SSLCertificateFile /etc/pki/tls/certs/www-hogarthuk.com-ssl-bundle.crt
SSLCertificateKeyFile /etc/pki/tls/private/www-hogarthuk.com-decrypted.key

<IfModule mod_headers.c>
      Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
</IfModule>

下一步是什麼?

總會有需要修復和改進的錯誤。除了上面提到的 SELinux 兼容性改進之外,它還有一個令人興奮的未來。 基於 DNS 的身份驗證使 Certbot 可以輕鬆超越 Web 服務器。郵件、jabber、負載平衡器和其他服務可以更輕鬆地使用帶有 Let’s Encrypt 證書的 Certbot 客戶端。