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

ASP.NET Zero对接IdentityServer SSO时提示SSL证书已过期但实际未过期

问题可能的原因

  • 混淆了HTTPS证书和JWT签名证书:你提到的有效期至2022年的是SSO站点HTTPS传输用的SSL证书,而报错指向的是Identity Server用来签名JWT令牌的X509证书,两者是完全独立的证书,大概率是签名用的证书实际已经过期。
  • OpenID Connect发现文档缓存未更新:代码中使用的IConfigurationManager<OpenIdConnectConfiguration>默认有24小时的缓存周期,如果Identity Server已经更换了新的有效签名证书,但应用还在使用缓存中拉取的旧过期证书校验令牌,就会触发该错误。可通过重启应用、清空配置缓存验证是否属于该问题。
  • 服务器时间异常:校验证书有效期时依赖的是ASP.NET Zero应用所在服务器的UTC时间,如果服务器系统时间比实际时间快,超过了签名证书的ValidTo时间,会触发误判。可以把报错日志里的ValidTo (UTC)和Current time (UTC)实际值取出对比,快速验证该问题。
  • Identity Server侧配置错误:两种情况会触发该问题:一是Identity Server仍然在使用已过期的证书对JWT令牌签名;二是Identity Server的发现文档(.well-known/openid-configuration)返回的签名密钥列表中包含已过期的证书,且当前请求的令牌对应的kid正好匹配该过期证书。
  • 类库版本Bug:部分旧版本的Microsoft.IdentityModel.Tokens包存在证书有效期校验逻辑异常的问题,可尝试将该类库以及相关的System.IdentityModel.Tokens.Jwt包升级到最新稳定版验证是否解决。

临时应急方案(存在安全风险,不建议长期使用)

如果需要快速恢复业务,可在TokenValidationParameters配置中新增自定义校验逻辑跳过签名证书有效期校验:

validationParameters.IssuerSigningKeyValidator = (securityKey, securityToken, validationParameters) =>
{
    // 仅临时跳过证书有效期校验,排查完问题务必关闭
    return true;
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:45:02