2017-06-15 59 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證書。