Apache-2.2

安裝新 SSL 證書時遇到問題(Apache2 虛擬主機)

  • September 3, 2021

我在嘗試為 Apache2 安裝新的 SSL 證書時遇到問題。我們在埠 80 上執行正常流量,在 443 上執行 SSL。

我修改了httpd.conf,只重命名/etc/httpd/conf/2009certs//etc/httpd/conf/2010certs/

<VirtualHost ServerIP:443>
 # This parameter already existed as-is
 SSLEngine on

 # These are the parameters I changed (already existed w/ diff paths.)
 SSLCertificateFile /etc/httpd/conf/2010certs/server.crt
 SSLCertificateKeyFile /etc/httpd/conf/2010certs/server.key
 SSLCertificateChainFile /etc/httpd/conf/2010certs/intermediate.pem
 SSLCACertificateFile /etc/httpd/conf/2010certs/gs_root.pem

 # Other parameters here; ServerAdmin, DocumentRoot, ServerName, ErrorLog, etc....
</VirtualHost>

存在另一個 VirtualHost 塊*:80,但未對該區域進行任何更改。

在使用新的證書路徑保存httpd.conf,註釋掉舊的 2009 路徑並嘗試重新啟動 apache 後,我得到以下內容但/var/log/httpd/error_log無法httpd啟動:

您在標準 HTTPS(443) 埠上配置了 HTTP(80)!

除了證書路徑外沒有任何改變,並且在將httpd.conf更改回使用舊證書後問題消失了。

這可能是什麼原因造成的?

問題最終是由於 RSA 私鑰文件server.key上存在密碼片語- apache 啟動腳本未配置為提供密碼片語。

我不太清楚為什麼這會導致上面的錯誤消息。我猜當 apache 無法讀取 SSL 私鑰文件並且無法在 443 上以 HTTPS 啟動時,它會退回到埠 80 上的不同 VirtualHost 配置。

我也遇到了這個問題,但問題是該部分中缺少“ServerName”指令。我建議嘗試對您的配置文件進行此修改:

<VirtualHost ServerIP:443>

 ServerName   host.domain

 # This parameter already existed as-is
 SSLEngine on

 # These are the parameters I changed (already existed w/ diff paths.)
 SSLCertificateFile /etc/httpd/conf/2010certs/server.crt
 SSLCertificateKeyFile /etc/httpd/conf/2010certs/server.key
 SSLCertificateChainFile /etc/httpd/conf/2010certs/intermediate.pem
 SSLCACertificateFile /etc/httpd/conf/2010certs/gs_root.pem

 # Other parameters here; ServerAdmin, DocumentRoot, ServerName, ErrorLog, etc....
</VirtualHost>

第三行: Servername host.domain應添加並server.domain替換為您網站的實際主機名和域。

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