On Mon, 2020-07-20 at 15:35 +0200, Daniel Gustafsson wrote: > With this, I have one failing test ("intermediate client certificate is > provided by client") which I've left failing since I believe the case should > be > supported by NSS. The issue is most likely that I havent figured out the > right > certinfo incantation to make it so (Mozilla hasn't strained themselves when > writing documentation for this toolchain, or any part of NSS for that matter).
I think we're missing a counterpart to this piece of the OpenSSL implementation, in be_tls_init(): if (ssl_ca_file[0]) { ... SSL_CTX_set_client_CA_list(context, root_cert_list); } I think the NSS equivalent to SSL_CTX_set_client_CA_list() is probably SSL_SetTrustAnchors() (which isn't called out in the online NSS docs, as far as I can see). What I'm less sure of is how we want the NSS counterpart to ssl_ca_file to behave. The OpenSSL implementation allows a list of CA names to be sent. Should the NSS side take a list of CA cert nicknames? a list of Subjects? something else? mod_nss for httpd had a proposed feature [1] to do this that unfortunately withered on the vine, and Google returns ~500 results for "SSL_SetTrustAnchors", so I'm unaware of any prior art in the wild... --Jacob [1] https://bugzilla.redhat.com/show_bug.cgi?id=719401