Apache弃用的SSLCertificateChainFile指令(AH02559)


8

最近,我已将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指令指定的文件中,但是我不知道应该将什么键以及按什么顺序连接到该文件。

Answers:


8

假设您在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主中间服务器CA)
  3. 第二个中间CA的证书,由第一个中间CA签名(如果您的证书链中有第二个中间CA)

您需要将所有中间CA的证书放在crt文件中。根据证书的证书链,将调用不同数量的CA。

您甚至不需要添加根CA,因为它必须位于任何客户端的信任存储区中,否则客户端将获得一个错误页面,而且,如果将其添加到链中,这将是额外的开销。建立SSL连接,因为必须为每个新的SSL会话进行传输。实际上,大多数客户端还将安装中间CA证书,但有些客户端可能没有,例如,移动电话没有很多中间CA证书,因此我肯定会添加这些证书。

/etc/apache2/cert/ssl.key文件将保持不变,即它将包含yourdomain.com证书的密钥。


好的,如果我对您的理解正确,则应按以下顺序创建文件:1)ssl.crt; 2)sub.class1.server.sha2.ca.pem; 3)什么?请说明在第三(可能还有更多)位置应添加哪些证书。
神经递质

这取决于实际的链,我的意思是签署证书所涉及的CA数量。链只能包含2个CA。例如根CA和一个中间CA。但是它可能包含根CA和不止一个中间CA。您的ssl.crt文件应从上至下包含所有中间CA证书。因此,ssl.crt的外观完全取决于您的特定情况。
fholzer

如何知道证书签名涉及哪些CA?
神经递质2015年

2
我想,对于新手来说,建立链条并不容易。我通常openssl x509 -subject -issuer -noout -in certificate.of.yourdomain.crt会去看发行人。然后,我从您的CA网站下载发行证书,如果您使用的话:startssl.com/certs。然后在该证书上运行命令。重复进行,直到颁发等于主题,这意味着证书是自签名的,并且是根CA证书。将除根CA证书之外的所有这些文件添加到ssl.crt中,然后完成。
fholzer

感谢您的支持,我遵循了整个流程,并生成了一个组合证书。但是出于某种原因,Qualys SSL测试表明,连接到我的主机的客户端必须额外下载 StartCom Class 1主中间服务器CA,我肯定已经将其包括在组合证书中(屏幕截图)。那真是怪了。
神经递质2015年

1

好的,最近终于弄清楚了,决定在答案表中发布详细信息。

现在,当您检索SSL时,StartSSL会将证书放在zip归档文件中,并且其中包含很多存档,其中一个特别令人感兴趣的是ApacheServer.zipApache> 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 SSL Test

这适用于StartCom StartSSL以及WoSign证书。格式是一样的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.