一年半前,Let’s Encrypt 項目進入公測階段。 當該項目一年多前結束測試時,letsencrypt 客戶端從 ISRG 中分離出來,ISRG 繼續維護 Let’s Encrypt 服務器。 在 EFF 項目中重命名為 certbot然而,使命是一樣的。它提供了對免費域驗證證書的快速和輕鬆訪問,用於加密互聯網。
本週標誌著 Certbot 發展的重要時刻 推薦 Let’s Encrypt 客戶端使用 0.14 版本的工具。
當letsencrypt 客戶端首次發佈時,它僅支持使用現有HTTP 服務器的Web 路由。這是一種獨立模式,其中letsencrypt 臨時偵聽端口80 以執行質詢,或者管理員在ACME 服務器啟動身份驗證之前放置質詢的手動方法。目前,letsencrypt 客戶端功能更強大。
Apache Certbot 的 HTTPD 插件
當客戶端更改為 EFF 項目時,最初顯示的主要功能有: Apache HTTPD 插件此插件允許您的 Certbot 應用程序自動配置您的 Web 服務器以將證書用於一個或多個虛擬服務器安裝。
注意:如果您在使用插件時遇到 SELinux 在強制模式下的問題,請在運行 certbot –apache 命令時使用 setenforce0 命令切換到允許模式。然後使用 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 時運行的單元測試。但是,開發人員仍然不樂意宣布他們已準備好,因為他們注意到實際測試中出現了一些邊緣情況失敗。從 0.14 版開始,開發人員已聲明 Certbot Python3 兼容性。此更改將 Fedora 與默認的首選 Python 版本內聯。
為了盡量減少可能出現的問題,Rawhide 和未來的 Fedora 26 將首先切換到使用 certbot-3,但 Fedora 25 將繼續使用 certbot-2 作為默認值。
為更新而瘋狂
最近的更新添加了一個自動更新證書的 systemd 計時器。計時器每天檢查是否需要更新證書。要啟用它,請使用以下命令:
systemctl enable --now certbot-renew.timer
更新行為可能會根據 /etc/sysconfig/certbot 的配置而改變。它包括在續訂之前和之後運行掛鉤的選項,以及為每個處理的證書運行的另一個掛鉤。這些是全局行為。或者,您可以在位於 /etc/testencrypt/renew 的配置文件中為每個證書配置掛鉤。
建議使用某種形式的自動化,無論是否是 systemd 計時器,以確保證書定期更新並且不會意外過期。
測試 SSL 安全性
1 SSL安全測試 為 CentOS 7 和 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 客戶端更易於使用。