Security 让客户端选择首选SSL/TLS证书

Security 让客户端选择首选SSL/TLS证书,security,ssl,nginx,https,Security,Ssl,Nginx,Https,假设我们有两个使用RSA和“BCA”ECC的CA“ACA”,它们都为服务器颁发TLS证书。ACA受到大多数客户的信任,而BCA只受到少数客户的信任 虽然ACA是可信的,但RSA总是需要更多的时间。因此,我们希望所有信任BCA的客户都喜欢BCA签署的证书,而其他客户则会选择ACA 据我所知,为一个域配置多个证书是可能的。至少在nginx上是这样,但是客户端总是使用我放置的证书作为nginx的snginx.conf配置文件中的第二个证书条目 因此,如果可能的话,服务器是否可以处理EC证书的传递,而如

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

虽然ACA是可信的,但RSA总是需要更多的时间。因此,我们希望所有信任BCA的客户都喜欢BCA签署的证书,而其他客户则会选择ACA

据我所知,为一个域配置多个证书是可能的。至少在nginx上是这样,但是客户端总是使用我放置的证书作为nginx的
snginx.conf
配置文件中的第二个证书条目


因此,如果可能的话,服务器是否可以处理EC证书的传递,而如果客户端不信任证书,则可以处理RSA证书的传递?

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

客户可以使用
signature\u算法
扩展来表示他们需要RSA、DSA、ECDSA等。请参阅。当nginx在您描述的情况下提供不同的证书时,可能是由于
签名\u算法
扩展。但签名算法和发行人之间并没有联系或关联。为了克服这个问题,您通常会要求客户机在他们的信任存储中安装一个丢失的CA。所以,客户机端的问题是选择使用这两个提供的CA中的哪一个。您只需在服务器上使用一个证书而不是多个证书就可以离开,因为没有浏览器会首先查找信任存储中的CA。