The way we have been running HTTP2 tests against remote servers has meant that certificate validation is always disabled. I am making test changes in dotnet/corefx#39343 that re-enable this, and now we're seeing an assert in the cert validation code on every Linux distro except for RedHat.
Process terminated. Assertion failed.
Unrecognized X509VerifyStatusCode:44
at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.MapVerifyErrorToChainStatus(X509VerifyStatusCode code) in /_/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509ChainProcessor.cs:line 819
at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.AddElementStatus(X509VerifyStatusCode errorCode, List`1 elementStatus, List`1 overallStatus) in /_/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509ChainProcessor.cs:line 703
at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.AddElementStatus(ErrorCollection errorCodes, List`1 elementStatus, List`1 overallStatus) in /_/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509ChainProcessor.cs:line 694
at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.BuildChainElements(WorkingChain workingChain, List`1& overallStatus) in /_/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509ChainProcessor.cs:line 599
at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.Finish(OidCollection applicationPolicy, OidCollection certificatePolicy) in /_/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509ChainProcessor.cs:line 393
at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /_/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 99
at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /_/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118
at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) in /_/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 105
at System.Net.Security.CertificateValidation.BuildChainAndVerifyProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, String hostName) in /_/src/Common/src/System/Net/Security/CertificateValidation.Unix.cs:line 18
at System.Net.CertificateValidationPal.VerifyCertificateProperties(SafeDeleteContext securityContext, X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) in /_/src/System.Net.Security/src/System/Net/CertificateValidationPal.Unix.cs:line 22
at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback, ProtocolToken& alertToken) in /_/src/System.Net.Security/src/System/Net/Security/SecureChannel.cs:line 1010
at System.Net.Security.SslStream.CompleteHandshake(ProtocolToken& alertToken) in /_/src/System.Net.Security/src/System/Net/Security/SslStream.Implementation.cs:line 754
The way we have been running HTTP2 tests against remote servers has meant that certificate validation is always disabled. I am making test changes in dotnet/corefx#39343 that re-enable this, and now we're seeing an assert in the cert validation code on every Linux distro except for RedHat.
Additional details in dotnet/corefx#39343