最近我已经将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指令指定,但我不知道什么键和顺序我应该连接到这个文件。
鉴于你在你的apacheconfiguration中使用这个:
SSLCertificateFile /etc/apache2/cert/ssl.crt SSLCertificateKeyFile /etc/apache2/cert/ssl.key
/etc/apache2/cert/ssl.crt文件应该包含
您需要将所有中间CA的证书放在crt文件中。 根据您的证书的证书链,将有不同数量的CA。
您甚至不需要添加根CA,因为它必须位于任何客户端的信任存储区中,否则客户端将获得错误页面,而且,如果将其添加到您的链中,它将只是额外的开销build立SSL连接,因为每个新的SSL会话都必须传输。 实际上大多数客户端也会安装中间的CA证书,但有些可能不会,例如手机没有很多中间的CA证书,所以我肯定会加上这些证书。
/etc/apache2/cert/ssl.key文件将保持不变,即它将包含yourdomain.com证书的密钥
好的,最后最后想出来,决定在答案中发布详细信息。
现在,当您检索到证书时,StartSSL会将证书放入zip压缩文件中,并且在那里有大量的归档文件,特别感兴趣的是ApacheServer.zip ,这是一个Apache> 2.4兼容的格式。 Apache文件夹中的文件是:
1_root_bundle.crt 2_myhost.tld.crt
您必须从这两个证书中SSLCertificateFile ,但是按以下顺序:
cat 2_myhost.tld.crt 1_root_bundle.crt > myhost.tld_combined.crt
所以在网站conf它将只是:
SSLCertificateFile /etc/apache2/cert/myhost.tld_combined.crt SSLCertificateKeyFile /etc/apache2/cert/myhost.tld.key
一切都会好起来的,即使是Qualys的SSLtesting 。
这适用于StartCom StartSSL以及WoSign证书。 格式是一样的。