Domain-Name-System

Certbot 失敗。在將替換現有生產伺服器的新伺服器上啟用 Let’s Encrypt certbot

  • December 11, 2017

我有一個 nginx Web 伺服器,它帶有 Let’s Encrypt 使用 Certbot 提供的 SSL 證書。例如,此站點在https://example.com上公開可用

新伺服器

我正在創建一個新伺服器,一旦一切設置和部署正確,它將替換現有伺服器。

我希望它在設置時在https://beta.example.com上可用,然後在獲得批准後在https://example.com上可用。

https://beta.example.com現在可以使用,因為沒有其他伺服器為該子域的站點提供服務,但 example.com 只有在我最終更新 DNS 記錄時才能工作。

在新伺服器準備好之前,我顯然需要現有的 Web 伺服器繼續執行而不會受到影響。

如何為新伺服器創建 SSL 證書以準備最終接管?

驗證域的問題

當我執行 certbot 時,它嘗試訪問https://example.com作為驗證的一部分,但是它失敗了,因為該域指向現有伺服器的 IP 地址。

授權程序失敗。example.com (tls-sni-01): urn:acme:error:tls :: 伺服器在域驗證期間遇到 TLS 錯誤 :: 遠端錯誤: tls: 握手失敗

重要說明:

  • 伺服器報告了以下錯誤:

域:example.com

類型:tls

詳細資訊:遠端錯誤:tls:握手失敗

要修復這些錯誤,請確保您的域名輸入正確,並且該域的 DNS A/AAAA 記錄包含正確的 IP 地址。此外,請檢查您是否具有允許伺服器與 Certbot 客戶端通信的最新 TLS 配置。

鑑於我正在嘗試做的事情,是否有適當的流程來解決這個問題?

嘗試使用反向代理。在擁有 example.com 的舊伺服器上創建兩個虛擬主機,並將 beta.example.com 指向那裡。帶有 beta.examply.com 的虛擬主機應該通過 HTTP 將 HTTPS 和反向代理請求剝離到實際伺服器。兩個虛擬主機都將使用相同的證書。現在所有 Letsencrypt stull 都將在舊伺服器上。

準備好後,將證書複製到新伺服器,更新 DNS 並等待它解決(至少在 DNS TTL 秒內)。當您看到所有請求都到達新伺服器時,您可以反轉事情或只是移動 Letsencrypt 的東西並完全移動到新伺服器。

引用自:https://serverfault.com/questions/887513