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

AWS上.NET API出现IDX20803配置获取失败错误的排查

AWS EC2上.NET API无法获取Auth0 OpenID配置的问题分析与解决

问题概况

  • 运行多年的.NET API部署在AWS EC2实例上,近一个月突然出现每次请求都抛出IDX20803异常,本地运行完全正常
  • 开启Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true后,明确错误是无法从https://mydomain.us.auth0.com/.well-known/openid-configuration获取OpenID配置
  • 在AddJwtBearer中添加自定义证书验证回调(强制信任所有证书)后,EC2环境下的请求恢复正常,但浏览器直接访问该配置URL能正常建立SSL连接

可能的根因

  1. EC2系统根证书未更新:AWS EC2实例的系统信任根证书库可能很久没更新,而Auth0近期更换的SSL证书依赖的根证书不在EC2的信任池里。浏览器会自动同步最新根证书,所以能正常访问,但.NET的HttpClient默认用系统证书库,导致验证失败。
  2. VPC网络限制证书验证流程:EC2所在VPC的安全组、NACL或者路由规则,可能限制了实例访问证书吊销列表(CRL)或在线证书状态协议(OCSP)的服务,证书验证时无法完成状态检查,最终导致SSL连接失败。
  3. Auth0证书链结构变化:Auth0近一个月更新了SSL证书,新证书的中间证书或根证书不在EC2实例的信任范围内,引发验证错误。

临时修复方案(已验证有效)

在AddJwtBearer配置中替换默认的BackchannelHttpHandler,跳过证书验证:

options.BackchannelHttpHandler = new HttpClientHandler
{
    ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => true
};

注意:这个方法会绕过所有SSL证书校验,有安全风险,只能临时用来排查问题,别长期用在生产环境。

长期合规解决方案

  1. 更新EC2实例的根证书:
    • Amazon Linux 2系统:执行sudo update-ca-trust命令更新系统信任根证书
    • Ubuntu/Debian系统:执行sudo apt-get update && sudo apt-get install ca-certificates更新证书包
  2. 排查VPC网络连通性:
    • 在EC2实例上用curl测试Auth0证书链涉及的根证书颁发机构域名,确认能正常访问
    • 检查安全组和NACL是否允许出站443端口的所有必要SSL流量,包括CRL/OCSP服务的地址
  3. 验证证书链完整性:
    • 在EC2实例上执行openssl s_client -connect mydomain.us.auth0.com:443,查看证书链的验证结果,定位具体哪个证书不被信任
    • 确认Auth0返回的证书链完整,所有中间证书和根证书都在EC2的系统信任库中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:52:45