多个 SSL 证书包?
Multiple SSL Cert Bundles?
我公司想为我们的网站使用两种不同类型的 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 捆绑包。我的问题是:
- 我可以使用两种不同的
SSLCertificateChainFile
指令,每种指令一种(RSA 和 ECDSA)吗?
- 如果我不能,那么如何将来自两个不同证书包的 CA 包合并到一个文件中?假设我有两个 CA 捆绑文件,它们的顺序如下:
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-----
它们应该按什么顺序组合?
从 Apache 2.4 docs for SSLCertificateChainFile
开始,您似乎会在配置为 SSLCertificateFile
的文件中提供单独的链, 即 将服务器证书与其证书相结合相应的证书链,在同一个文件中。
例如,您的 /etc/ssl/certs/website_com_rsa.crt
可能包含 多个 证书,从服务器证书到根:
-----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
.
希望对您有所帮助!
我公司想为我们的网站使用两种不同类型的 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 捆绑包。我的问题是:
- 我可以使用两种不同的
SSLCertificateChainFile
指令,每种指令一种(RSA 和 ECDSA)吗? - 如果我不能,那么如何将来自两个不同证书包的 CA 包合并到一个文件中?假设我有两个 CA 捆绑文件,它们的顺序如下:
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-----
它们应该按什么顺序组合?
从 Apache 2.4 docs for SSLCertificateChainFile
开始,您似乎会在配置为 SSLCertificateFile
的文件中提供单独的链, 即 将服务器证书与其证书相结合相应的证书链,在同一个文件中。
例如,您的 /etc/ssl/certs/website_com_rsa.crt
可能包含 多个 证书,从服务器证书到根:
-----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
.
希望对您有所帮助!