多个SSL证书包?

时间:2016-02-23 23:06:27

标签: apache ssl nginx bundle ca

我的公司希望为我们的网站使用两种不同类型的SSL证书:一种使用RSA,另一种使用ECDSA。原因是因为使用我们网站的外部服务使用的代码非常陈旧,所以我们需要兼顾两者。

编辑:我们正在使用Apache 2.4,两个证书来自同一个权限。因此,下面的根CA是相同的,但由于RSA / ECDSA差异,中间体是不同的。

我们的Apache配置如下:

### RSA cert
SSLCertificateFile          /etc/ssl/certs/website_com_rsa.crt
SSLCertificateKeyFile       /etc/ssl/private/website_com_rsa.key

### ECDSA cert for compatibility
SSLCertificateFile          /etc/ssl/certs/website_com_ecdsa.crt
SSLCertificateKeyFile       /etc/ssl/private/website_com_ecdsa.key

### RSA/ECDSA cert bundle
SSLCertificateChainFile /etc/ssl/certs/website_com.ca-bundle

我不确定的部分是CA捆绑包。我的问题是:

  1. 我可以使用两种不同的SSLCertificateChainFile指令,每种指令一种(RSA和ECDSA)吗?
  2. 如果我不能,那么如何将来自两个不同证书包的CA捆绑包合并到一个文件中?假设我有两个CA捆绑文件,其顺序如下:
  3. RSA捆绑

    -----BEGIN CERTIFICATE-----
    ...
    <rsa-intermediate-1>
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    <rsa-intermediate-2>
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    <root-ca>
    ...
    -----END CERTIFICATE-----
    

    ECDSA捆绑

    -----BEGIN CERTIFICATE-----
    ...
    <ecdsa-intermediate-1>
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    <ecdsa-intermediate-2>
    ...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...
    <root-ca>
    ...
    -----END CERTIFICATE-----
    

    它们应该以什么顺序组合?

1 个答案:

答案 0 :(得分:1)

Apache 2.4 docs for SSLCertificateChainFile开始,您似乎会在配置了SSLCertificateFile的文件中提供单独的链,将服务器证书与其对应的证书链相结合,同一个文件。

例如,您的/etc/ssl/certs/website_com_rsa.crt可能包含多个证书,从服务器证书到root用户:

-----BEGIN CERTIFICATE-----
...
<website-com-rsa>
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
<rsa-intermediate-1>
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
<rsa-intermediate-2>
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
...
<root-ca>
...
-----END CERTIFICATE-----

同样适用于您的/etc/ssl/certs/website_com_ecdsa.crt文件。这意味着使用SSLCertificateChainFile

希望这有帮助!