在 Apache 上安裝 SSL 憑證時遇到問題

在 Apache 上安裝 SSL 憑證時遇到問題

我們有一台運行 Plesk 的 GoDaddy 專用伺服器,需要 SSL。

我已經產生了憑證檔案並建立了一個 vhost_ssl.conf (因為我無法編輯預設的 plesk apache 設定 http.include,vhost_ssl.conf 被包含到 httpd.include 中),它告訴 apache 在哪裡可以找到憑證檔案:

SSLCertificateFile /usr/local/psa/var/certificates/domain.com.crt
SSLCertificateKeyFile /usr/local/psa/var/certificates/domain.com.key
SSLCertificateChainFile /usr/local/psa/var/certificates/sub.class1.server.ca.pem

當我停止/啟動 apache 時,它拒絕啟動。 error_log 上也沒有任何內容(這很奇怪)。

然後我打開 httpd.include 並發現了這一點:

<VirtualHost 208.xxx.xxx.xxx:443>
    ServerName   domain.com:443
    ServerAlias  www.domain.com
    UseCanonicalName Off

    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile /usr/local/psa/var/certificates/certagC9054

    Include /var/www/vhosts/domain.com/conf/vhost_ssl.conf

然後我註解掉了

   SSLCertificateFile /usr/local/psa/var/certificates/certagC9054

(這是 plesk 的 SSL 憑證)並重新啟動 apache,它運作得很好。

看來 Apache 不喜歡同一個 VirtualHost 指令中的多個 SSLCertificateFile ?

使用 plesk 的任何人都知道,我不能只刪除 httpd.include 中的 SSLCertificateFile 指令,因為當有人使用它時 plesk 會覆寫我的變更 - 這就是它位於 vhost_ssl.conf 中的原因。

所以我陷入了困境,這超出了我微薄的管理能力。希望有人知道他在做什麼來告訴我發生了什麼事。

提前致謝。

答案1

根據我使用 Plesk 的經驗,當我使用 Plesk 管理網站來管理我的網站時,通常情況會比手動編輯設定檔效果更好。 Plesk 對 SSL 證書的內建支援非常好 — 您可以輕鬆地新增從第三方獲得的證書,並將其與您在 Plesk 中配置的網站之一關聯。

如果您選擇直接修改配置文件,我在您的帖子中看到的危險信號是您正在嘗試將兩個不同的證書應用於同一虛擬主機。根據我的經驗,SSL 憑證通常僅在 IP 位址和 SSL 憑證之間存在 1:1 關係時才有效。我的建議是刪除其中一個 SSL 證書,或將虛擬主機分成不同 IP 位址上的兩個單獨的網站。

答案2

它與 Plesk 無關。問題在於 SSL 和 HTTP 的工作方式。基本上,SSL 在啟動之前不知道伺服器的名稱,因此 Apache 無法選擇要使用的憑證集。看http://www.modssl.org/docs/2.8/ssl_faq.html#ToC47有關這個先有雞還是先有蛋問題的更多詳細資訊。

相關內容