Apache-2.2
安裝新 SSL 證書時遇到問題(Apache2 虛擬主機)
我在嘗試為 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
替換為您網站的實際主機名和域。