Description
We are running a .NET Core 3.1 application on Kestrel inside a Linux Docker container.
This is what 'uname -a' gives:
Linux 2a628053d7bd 4.19.76-linuxkit dotnet/aspnetcore#1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 GNU/Linux
We are invoking an API endpoint using client certificates and we are getting the following error from Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationHandler:
[01:11:58 WRN] Certificate validation failed, subject was CN=****, OU=****, O=****, L=****, S=CA, C=US.
RevocationStatusUnknown unable to get certificate CRL
[01:11:58 DBG] MTLS authentication failed, error: Client certificate failed validation..
[01:11:58 INF] HTTP POST /connect/mtls/token responded 403 in 63.3324 ms
Our application is using the following certificate validation code
services.AddAuthentication()
.AddCertificate("x509", options =>
{
options.RevocationMode = X509RevocationMode.Online;
});
The root and the intermediate CAs are successfully being installed in Linux using the following command update-ca-certificates and despite the error, the CRLs are also being successfully downloaded into the ~/.dotnet/corefx/cryptography/crls/ folder.
The container obviously has access to the internet (We tested this by manually downloading the DigiCert CRLs using curl).
The same code works fine using IIS.
Could you provide more information on how the CertificateAuthenticationHandler retrieves CRLs and validates client certificates?
Description
We are running a .NET Core 3.1 application on Kestrel inside a Linux Docker container.
This is what 'uname -a' gives:
Linux 2a628053d7bd 4.19.76-linuxkit dotnet/aspnetcore#1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 GNU/LinuxWe are invoking an API endpoint using client certificates and we are getting the following error from Microsoft.AspNetCore.Authentication.Certificate.CertificateAuthenticationHandler:
Our application is using the following certificate validation code
The root and the intermediate CAs are successfully being installed in Linux using the following command
update-ca-certificatesand despite the error, the CRLs are also being successfully downloaded into the~/.dotnet/corefx/cryptography/crls/folder.The container obviously has access to the internet (We tested this by manually downloading the DigiCert CRLs using curl).
The same code works fine using IIS.
Could you provide more information on how the CertificateAuthenticationHandler retrieves CRLs and validates client certificates?