For setups with large amounts of CA certs it can be a really good idea to turn 
off CA names in the key exchange.
As far as I understand it is optional to send CA names, and it works fine with 
these turned off.
This is also called distinguished names.

To do this a single line should not be executed.
                        SSL_CTX_set_client_CA_list(ctx, 
SSL_load_client_CA_file(ca_file));
(in ssl_sock.c, function ssl_sock_prepare_ctx).

I currently disable this with a LD_PRELOAD shim, but I think it would be a good 
idea to make this an ssl option, similar to force_tls12 etc.

/*
  This shim disables 2 openssl functions.
  The effect of this is that no client CA names,
  also known as distingushed names, are loaded
  this reduces ssl traffic with large numbers of
  CA certificates.

  This is made to be used with HAPROXY since it
  does not have a setting to disable this in the
  configuration.
*/
#include <stdio.h>

void SSL_CTX_set_client_CA_list(void *one, void *two) {
  printf("SSL_CTX_set_client_CA_list called but disabled by shim.\n");
  return;
}
void *SSL_load_client_CA_file(void *one) {
  printf("SSL_load_client_CA_file called but disabled by shim.\n");
  return 0;
}

Reply via email to