2015-07-12 94 views
2

我在Apache 2.4.12上,所以SSLCertificateChainFile現在已經過時,並且任何中間證書都應該包含在服務器證書文件中。但我無法弄清楚如何執行此操作 - 除之外的任何證書組合只有指定文件內的站點證書導致無效的密鑰錯誤。如何在我使用SSLCertificateFile指定的文件中正確包含中間證書?SSLCertificateChainFile已過時

+0

[關於Apache SSLCertificateChainFile棄用警告2.4.8+(http://serverfault.com/q/588986/217116) – sebix

回答

0

對於Apache 2.4.8,SSLCertificateChainFile已被廢棄。然而,它只是被棄用,並沒有被刪除,所以你可能會繼續使用舊的風格。但是,對於Apache版本> 2.4.8,SSLCertificateChainFile將不起作用。

SSLCertificateChainFile已被棄用

SSLCertificateChainFile變得過時與2.4.8版本,當 了SSLCertificateFile擴展到還從服務器證書文件加載中間CA證書

https://httpd.apache.org/docs/2.4/mod/mod_ssl.html#SSLCertificateChainFile

舊樣式(有效在Apache < = 2.4.8)

#SSL Directives 
SSLEngine on 
SSLCertificateFile /etc/ssl/certs/<mydomain.com>.crt 
SSLCertificateKeyFile /etc/ssl/private/<mydomain.com>.key 
SSLCertificateChainFile /etc/ssl/certs/<full-chain-bundle>.crt 

源:How to Install an SSL Certificate on Apache

新型

#SSL Directives 
SSLEngine on 
SSLCertificateFile /etc/ssl/certs/<full-chain-bundle>.crt 
SSLCertificateKeyFile /etc/ssl/private/<mydomain.com>.key 
(在Apache> = 2.4.8有效)

來源:https://codesport.io/lamp-stack-advanced/lets-encrypt-tutorial/#vhost-config

+0

並沒有爲我工作。我除去 .CRT然後將錯誤消息指示的證書和密鑰不匹配。 –

+0

我覺得是什麼讓這個答案有點令人困惑的是,'<全鏈束> .crt'同時出現在新老配置。如果我沒有記錯,在舊的配置只有* CA鏈*似乎由'SSLCertificateChainFile'打電話到文件中,而在新配置CA鏈應該附加到服務器證書,成*滿鏈*,由'SSLCertificateFile'調用。我試圖在我的回答中澄清。 –

0

從Apache 2.4模塊mod_ssl文檔摘自:

SSLCertificateFile指令

該文件還可以包括中間CA證書,分類從葉根。這在版本2.4.8和更高版本中受支持,並且已廢棄SSLCertificateChainFile

這意味着SSLCertificateFile指令現在(2.4.8之後)接受具有完整證書鏈(從葉到根)的文件。如果您有domain.crt的服務器證書和domain-ca.crt中的CA鏈文件,則需要將文件從葉子連接到根,即啓動您的服務器證書,如

cat domain.crt domain-ca.crt > bundle.crt 

,並使用該文件的網站的conf文件中:(例如,使用Ubuntu的默認路徑,這些文件將被存儲在/etc/apache2/ssl/

SSLCertificateFile  /path/to/bundle.crt