我使用的是Apache 2.4.12,因此SSLCertificateChainFile现已过时,任何中间证书都应包含在服务器证书文件中。但是我无法弄清楚如何执行此操作 - 除之外的任何证书组合指定文件中的站点证书会导致无效的密钥错误。如何使用SSLCertificateFile
在我指定的文件中正确包含中间证书答案 0 :(得分:1)
取自Apache 2.4模块mod_ssl
文档:
这些文件还可能包含从叶到根分类的中间CA证书。版本2.4.8及更高版本支持此功能,并废弃
SSLCertificateChainFile
。
这意味着现在SSLCertificateFile
指令(2.4.8之后)接受具有完整证书链的文件(从leaf到root)。如果您拥有domain.crt
中的服务器证书和domain-ca.crt
中的CA链文件,那么您需要将两个文件从leaf连接到root ,即从您的服务器证书,如
cat domain.crt domain-ca.crt > bundle.crt
并在您网站的conf
文件中使用该文件:
SSLCertificateFile /path/to/bundle.crt
(例如,使用Ubuntu默认路径,这些文件将存储在/etc/apache2/ssl/
。)
答案 1 :(得分:0)
对于Apache 2.4.8,table_name.column_name
已经过时了。但是,它已被弃用且未删除,因此您可以继续使用旧版款。但是,对于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上有效)
SSLCertificateChainFile
来源: How to Install an SSL Certificate on Apache
新样式(适用于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
来源: https://codesport.io/lamp-stack-advanced/lets-encrypt-tutorial/#vhost-config