[tls] Remove use of SSL_CTX_set_client_CA_list for TLS server credentials. (#33558)
This PR does the following: for the TLS server credentials, stops calling `SSL_CTX_set_client_CA_list` by default in `ssl_transport_security.cc`, and gives users a knob to re-enable calling this API. ## What does the `SSL_CTX_set_client_CA_list` API do? When this API is called, a gRPC TLS server sends the following data in the ServerHello: for each certificate in the server's trust bundle, the CA name in the certificate. This API does not change the set of certificates trusted by the server in any way. Rather, it is just providing a hint to the client about what client certificate should be sent to the server. ## Why are we removing the use of `SSL_CTX_set_client_CA_list` by default for the TLS server credentials? Removing the use of this API by default has 2 benefits: 1. Calling this API makes gRPC TLS unusable for servers with a sufficiently large trust bundle. Indeed, if the server trust bundle is too large, then the server will always fail to build the ServerHello. 2. Calling this API is introducing a huge amount of overhead (1000s of bytes) to each ServerHello, so removing this feature will improve connection establishment latency for all users of the TLS server credentials.pull/33573/head
parent
21f2eba143
commit
278978d6f0
16 changed files with 128 additions and 34 deletions
Loading…
Reference in new issue