一年半前,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 命令切換到可接受模式。然後使用 setenforce1 切換到強制模式。此問題將在未來的更新中得到解決。
當您使用 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 兼容。此更改使 Inline Fedora 成為默認的首選 Python 版本。
為了盡量減少可能出現的問題,Rawhide 和未來的 Fedora 26 將首先切換到使用 certbot-3,但 Fedora 25 將繼續使用 certbot-2 作為默認值。
為更新而瘋狂
最近的更新添加了一個自動更新證書的 systemd 計時器。計時器每天檢查是否需要更新證書。要啟用它,請使用以下命令:
systemctl enable --now certbot-renew.timer
更新行為可能會根據 /etc/sysconfig/certbot 的配置而改變。它包含在續訂之前和之後運行掛鉤的選項,以及為每個處理的證書運行的另一個掛鉤。這些是全局行為。或者,您可以在位於 /etc/letsencrypt/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 服務器。電子郵件、Java、負載均衡器和其他服務可以使用 Let’s Encrypt 證書來使 Certbot 客戶端更易於使用。