Apache 已弃用的 SSLCertificateChainFile 指令 (AH02559)

Apache 已弃用的 SSLCertificateChainFile 指令 (AH02559)

最近我将 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,但我不知道应该将哪些密钥以及以何种顺序连接到该文件。

答案1

假设您在 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 证书的密钥

答案2

好的,最近终于明白了,并决定在答案表中发布详细信息。

现在,当您检索证书时,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

因此在站点配置中它将只是:

    SSLCertificateFile    /etc/apache2/cert/myhost.tld_combined.crt
    SSLCertificateKeyFile /etc/apache2/cert/myhost.tld.key

一切都会好起来,甚至Qualys SSL 测试

这适用于 StartCom StartSSL,也适用于 WoSign 证书。格式相同。

相关内容