验证X509Certificate2证书时出现大延迟



我们的ITFoxtec实现目前遇到问题。代码对用户进行身份验证大约需要30秒。如果我们在localhost上尝试这种方法,则身份验证是即时的。该应用程序托管在本地服务器(而非云(上,该服务器有自己的防火墙、代理和其他相关基础设施设置。我们检查了日志,问题与使用X509Chain构建SSL服务器证书的证书链的过程有关。建筑此问题类似于https://learn.microsoft.com/en-us/archive/blogs/alejacma/big-delay-when-calling-sslstream-authenticateasclient

一旦我们看到这个错误,我们就去https://github.com/ITfoxtec/ITfoxtec.Identity.Saml2/blob/master/src/ITfoxtec.Identity.Saml2/Util/Saml2CertificateValidator.cs以便更好地理解代码并尝试想出解决方案。基于此,我们尝试了3种不同的方法,但仍然没有成功:

  • X509CertificateValidationMode。ChainTrust(外部检查(
  • X509证书验证模式。PeerTrust(本地检查(
  • X509证书验证模式。无(完全没有检查(

从日志的角度来看,这是工作流程:000000dda5bec1c0 00007ffbdbeaf0fc Interop+crypt32.CertGetCertificateChain(Internal.Cryptography.Pal.Native.ChainEnginee,Internal.Cryptigraphy.Pal.Native.SafeCertContextHandle,Internal.CCryptography.Par.Native.FILETIME*,Internal.Cirptography.PA.Native.SsafeCertStoreHandle,Internal.CryptographyPal.Native_CHAIN_PARA ByRef,Internal.Pryptograph.Pal.Native.CertChainFlags,IntPtr,Microsoft.Win32.SafeHandles.SafeX509ChainHandle ByRef(000000dda5bec220 00007ffbdbeae838内部。密码学。Pal.ChainPal.BuildChain000000dda5bec360 00007ffbdbeae2cb系统。安全密码学。X509证书。X509链条。内部版本(System.Security.Cryptography.X509Certificates.X509Certificate2,布尔值(000000dda5bec480 00007ffbdbeadd05系统。安全密码学。X509证书。X509链条。内部版本(System.Security.Cryptographic.X509Certificates.X509Certificate2(000000 dda5 ec40 00007 ffbdbead8c2 ITfoxtec。身份Saml2.Util.Saml2CertificateValidator.ValideChainTrust(System.Security.Cryptographic.X509Certificates.X509Certificate2(000000dda5bec560 00007ffbdbead301 ITfoxtec。身份Saml2.Util.Saml2CertificateValidator.Valide(System.Security.Cryptographic.X509Certificates.X509Certificate2(

有人知道如何完全绕过证书验证吗?我们只想在没有任何额外检查的情况下尽快对用户进行身份验证。

谢谢!

您可以通过在配置中设置CertificateValidationMode = "None"RevocationMode = "NoCheck"来禁用证书检查。例如,来自ASP的配置。NET核心示例。

或者您可以在Startup:中的代码中设置它

saml2Configuration.CertificateValidationMode = X509CertificateValidationMode.None;
saml2Configuration.RevocationMode = X509RevocationMode.NoCheck;

最新更新