Centos

為具有分佈式流量的多個 Apache 伺服器使用 Lets Encrypt SSL

  • June 15, 2016

我在為兩個不同伺服器上設置的幾個網站設置 Let’s Encrypt 時遇到一些問題,並通過 HAProxy 將流量分配給它們。

伺服器上有許多虛擬主機/域,所有這些都需要 SSL 證書。為了這篇文章,假設他們是:

  1. foo.some-site.com
  2. bar.some-site.com

這兩個 A 記錄都設置了兩個 IP 地址。我可以使用 nwtools.com 或僅 nslookup 驗證 A 記錄foo.some-site.combar.some-site.com解析相同的兩個 IP 地址。而且我知道 Let’s Encrypt 要求虛擬主機使用有效記錄,以便它可以進行查找。

我計劃在兩台伺服器上為所有虛擬主機執行 Lets Encrypt 設置,其中一台執行良好,但是當我轉到第二台時,出現錯誤:

[root@server httpd]# /opt/letsencrypt/letsencrypt-auto --apache -d foo.some-site.com
Checking for new version...
Requesting root privileges to run letsencrypt...
  /root/.local/share/letsencrypt/bin/letsencrypt --apache -d foo.some-site.com
Failed authorization procedure. foo.some-site.com (tls-sni-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Failed to connect to host for DVSNI challenge

IMPORTANT NOTES:
- The following errors were reported by the server:

  Domain: foo.some-site.com
  Type:   connection
  Detail: Failed to connect to host for DVSNI challenge

  To fix these errors, please make sure that your domain name was
  entered correctly and the DNS A record(s) for that domain
  contain(s) the right IP address. Additionally, please check that
  your computer has a publicly routable IP address and that no
  firewalls are preventing the server from communicating with the
  client. If you're using the webroot plugin, you should also verify
  that you are serving files from the webroot path you provided.

這可能是因為它正在查找或嘗試 curl foo.some-site.com,並且它可能被定向到另一台伺服器?我不確定這有多重要,因為兩者都有相同的 VHost,除非 LetsEncrypt 實際上正在監聽它自己建立的連接……

讓我失望的是它適用於其中一個很好(比如bar.some-site.com),那麼為什麼它適用於一個站點,但對於另一個具有完全相同設置的站點卻失敗了?

如果有人知道如何在兩台不同的伺服器上為相同的虛擬主機設置 Lets Encrypt,我們將不勝感激!

這可能是因為它正在查找或嘗試 curl foo.some-site.com,並且它可能被定向到另一台伺服器?

是的,絕對是。

作為域驗證質詢-響應過程的一部分,LE 需要連接回執行 LE 客戶端的伺服器。在不深入細節的情況下,LE 客戶端實際上會在您的網路伺服器中臨時提供某個文件,LE 伺服器需要能夠使用該文件來驗證域所有權。

在所有後端伺服器上執行此命令是不必要且麻煩的。執行一次,然後將密鑰和證書鏈複製到後端伺服器的其餘部分。

讓我失望的是它適用於其中一個很好(比如 bar.some-site.com),那麼為什麼它適用於一個站點,但對於另一個具有完全相同設置的站點卻失敗了?

因為你走運了?:) 有可能您的負載均衡器偶然將 LE 請求定向到正確的位置一次,但第二次沒有這樣做。

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