【问题标题】:Asp.net core Client certificate authentication middleware failing on X509Chain buildAsp.net 核心客户端证书身份验证中间件在 X509Chain 构建上失败
【发布时间】:2020-10-30 10:43:39
【问题描述】:

我们在 ASP.NET core 2.1 应用程序中有一个自定义中间件,用于验证客户端证书的有效性。证书不是自签名的,而是由受信任的 CA 签名的。该应用程序托管在 Azure 应用服务中。我们从链状态中得到以下响应。可能是什么问题?

“吊销功能无法检查证书的吊销,吊销功能无法检查吊销,因为吊销服务器处于脱机状态”。

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Offline;
var verified = ch.Build(x509Certificate2);

当我们将 RevocationMode 更改为在线时,它在大多数情况下都可以工作,但在某些情况下,我们会得到相同的链状态 “吊销功能无法检查证书的吊销,吊销功能无法检查吊销,因为吊销服务器处于脱机状态”。

X509Chain ch = new X509Chain();
ch.ChainPolicy.RevocationMode = X509RevocationMode.Online;
var verified = ch.Build(x509Certificate2);

【问题讨论】:

    标签: asp.net azure asp.net-core x509certificate2


    【解决方案1】:

    当您使用X509RevocationMode.Offline 时,验证很可能会失败,因为 CryptoAPI 将只查找本地缓存的撤销信息,而这在服务器上不太可能存在。

    当您使用X509RevocationMode.Online 时,CryptoAPI 将尝试访问吊销服务器(在 CDP 和 AIA 扩展中指定)以检索链中每个证书的吊销信息。如果任何证书都无法访问吊销信息,或者它是陈旧的,那么您将收到RevocationOffline 错误。在这种情况下,您可能需要为每个证书调试 CDP 和 AIA 扩展中的每个 URL,并找出其中的问题。

    另外,当 URL 可访问时,会引发 RevocationOffline 错误,但 URL 的超时已过期。

    【讨论】:

      猜你喜欢
      • 2014-03-31
      • 1970-01-01
      • 2021-02-21
      • 2018-01-08
      • 2019-06-27
      • 2011-04-09
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多