2017-06-15 26 views
0

假设我们有两个使用RSA和“BCA”ECC的CA“ACA”,两个都为服务器颁发TLS证书。 ACA受到大多数客户的信赖,而BCA只有少数人信任。使客户选择首选的SSL/TLS证书

虽然ACA是可信的,但RSA总是需要更多时间。因此,我们希望BCA签署的证书能够被所有信任BCA的客户所青睐,而其他客户则会回到ACA。

据我所知,为一个域配置多个证书是可能的。至少在nginx上,但客户端始终使用我已将n作为第二个证书条目的证书放入的nginx配置文件中。

因此,如果可能的话,服务器是否可以处理交付EC证书,但如果客户端不相信证书,RSA会如何?

+0

客户端可以使用'signature_algorithms'扩展名来表明他们需要RSA,DSA,ECDSA等。参见[RFC 5246,第7.4.1.4节。你好扩展](https://tools.ietf.org/html/rfc5246#section-7.4.1.4)。在你描述的情况下,当nginx提供了不同的证书时,它可能是由'signature_algorithms'扩展引起的。但签名算法与发行人之间没有关联或相关性。为了克服它,您通常会要求客户将缺失的CA安装到其信任库中。 – jww

+0

因此,选择使用哪一种都是客户端事宜。可以通过在服务器上使用单个证书而不是多个证书来保留它,因为没有浏览器实际上会首先查找哪些CA位于信任库中。 –

回答

1

客户端不提供任何信息,它信任哪个CA.这意味着服务器无法根据客户端信任设置来决定要提供哪个证书。服务器决定使用哪些证书的唯一信息是查看客户端提供的密码,例如,如果客户端支持ECDSA密码,则使用ECC证书,否则使用RSA证书。