Client certificate authentication with multiple CA but single CRL
mdounin at mdounin.ru
Thu Oct 10 08:58:33 UTC 2019
On Wed, Oct 09, 2019 at 05:55:31PM -0400, vz19 wrote:
> My current nginx configuration has 3 CAs concatenated into a PEM file called
> /etc/ngx_cas. However, only one of these CAs is configured with a CRL which
> is stored in /etc/ngx_crls.
> ssl_client_certificate /etc/ngx_cas;
> ssl_verify_client strict;
> ssl_crl /etc/ngx_crls;
> When I make a request using curl, I get a 400 Bad request with SSL
> certificate error, even though the client certificate is valid and signed by
> one of the 3 CAs recognized by NGINX. This CA does not have a CRL tied to
> it. Upon checking logs, this is the error that is thrown:
> 2019/10/09 21:40:28 [info] 25610#0: *1 client SSL certificate verify
> error: (3:unable to get certificate CRL) while reading client request
> However, when I remove the configured CRL from NGINX, the curl request goes
> through and authentication is successful.
> Is there any limitation on CRLs where if one trustpoint's CRL is configured,
> then CRL for all should be configured as well?
Yes, as long as ssl_crl is configured, nginx uses the
X509_V_FLAG_CRL_CHECK_ALL flag, which implies that verification
against CA certificates which does not have CRLs will fail. That
is, you have to configure CRLs for all CA certificates you use
(including intermediate CAs if there are any).
More information about the nginx