Apache-2.2

Apache 已棄用的 SSLCertificateChainFile 指令 (AH02559)

  • January 21, 2016

最近我已將 Apache 從 2.2 升級到 2.4,但我不知道如何棄用SSLCertificateChainFile指令。

錯誤:

me@jessie:~$ sudo apache2ctl configtest 
AH02559: The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/https.conf:103) is deprecated, SSLCertificateFile should be used instead
Syntax OK

我目前的設置:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key
SSLCertificateChainFile /etc/apache2/cert/sub.class1.server.sha2.ca.pem
SSLCACertificateFile /etc/apache2/cert/ca.pem

證書由 StartCOM 簽名。手冊說,現在整個鏈應該在一個文件中,由SSLCertificateFile指令指定,但我不知道我應該連接到這個文件的鍵和順序。

鑑於您在 apache 配置中使用它:

SSLCertificateFile    /etc/apache2/cert/ssl.crt
SSLCertificateKeyFile /etc/apache2/cert/ssl.key

/etc/apache2/cert/ssl.crt文件應包含

  1. 例如 yourdomain.com 的證書
  2. 第一個中間 CA 的證書,由根 CA 簽名(例如StartCom Class 1 Primary Intermediate Server CA)
  3. 第二個中間 CA 的證書,由第一個中間 CA 簽名(如果您的證書鏈中有第二個中間 CA)

您需要將所有中間 CA 的證書放在 crt 文件中。根據您的證書的證書鏈,將涉及不同數量的 CA。

您甚至不需要添加根 CA,因為它必須在任何客戶端的信任庫中,否則客戶端將收到錯誤頁面,此外,如果您將其添加到您的鏈中,這將只是額外的成本建立 SSL 連接,因為它必須為每個新的 SSL 會話傳輸。實際上大多數客戶端也會安裝中間CA證書,但有些可能沒有,例如手機沒有很多中間CA證書,所以我肯定會添加這些。

/etc/apache2/cert/ssl.key文件將保持不變,也就是說,它將包含 yourdomain.com 證書的密鑰

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