You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7下X509Chain在线吊销验证失败及自定义存储疑问

X509证书链验证吊销相关问题解答

先看你实现的证书链验证代码:

var chain = new X509Chain();
chain.ChainPolicy.TrustMode = X509ChainTrustMode.CustomRootTrust;
chain.ChainPolicy.CustomTrustStore.Add(_options.CA);
chain.ChainPolicy.CustomTrustStore.Add(_options.Intermediate);

针对你的两个疑问,结合.NET 7跨平台(Windows/Linux)的行为,解答如下:

1. CRL Next date过期是否会导致吊销验证失败?

是的,当RevocationMode设为Online或Offline(非NoCheck)时,如果CRL的Next Update时间早于当前UTC时间,会直接导致吊销验证失败。

CRL的Next Update字段定义了该CRL的有效截止时间,一旦超过这个时间,该CRL会被视为过期无效。.NET的X509链验证逻辑在检查吊销状态时,会先验证CRL本身的有效性(包括签名、有效期),只有有效的CRL才会被用来检查证书是否被吊销。你的CRL Next date在2018年1月,早已过期,所以非NoCheck模式下,链验证会因为CRL无效而失败。

2. 自定义根存储是否影响吊销验证?仅Windows系统存储支持吊销验证吗?

自定义根存储(CustomRootTrust模式)不会影响吊销验证的功能,且并非只有Windows系统存储支持吊销验证。

  • 自定义存储的影响:使用自定义信任存储时,链验证仍会遵循证书中的CRL分发点(CDP)配置尝试获取CRL,只要CDP可访问、CRL有效(未过期、签名合法),就能完成吊销检查。但需要确保自定义存储中的根证书、中间证书的CDP配置正确,且程序有访问CDP URL的网络权限。
  • 跨平台支持:.NET 7在Linux下依赖OpenSSL实现吊销验证,Windows下依赖系统CryptoAPI,两者都支持吊销检查。但Linux环境下需要注意:确保系统时间同步(CRL有效期依赖准确时间)、网络能访问CDP地址、OpenSSL版本支持对应的CRL格式(如DER/PEM)。

内容的提问来源于stack exchange,提问作者mslot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:56:18