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

如何在.NET Core中通过HTTPS运行Hot Chocolate GraphQL v11

Hot Chocolate v11 HTTPS配置方案(Kubernetes环境)

首先纠正一个常见认知误区:Hot Chocolate v11本身不限制HTTP/HTTPS协议,协议支持由承载它的ASP.NET Core宿主服务决定,官方默认示例使用HTTP仅为演示用途,无强制限制。以下是两种适配Kubernetes HTTPS要求的可落地方案:

1. 应用层直接配置HTTPS

适合应用直接对外暴露服务的场景,配置步骤如下:

  • 在ASP.NET Core的Program.cs/Startup.cs中配置Kestrel的HTTPS监听规则,示例代码:
public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseKestrel(options =>
            {
                options.ListenAnyIP(443, listenOptions =>
                {
                    listenOptions.UseHttps("ssl-certificate.pfx", "cert-password");
                });
            });
            webBuilder.UseStartup<Startup>();
        });
  • 调整中间件顺序,确保HTTPS重定向中间件放在GraphQL中间件之前:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // 其他基础中间件
    app.UseHttpsRedirection();
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapGraphQL();
    });
}
  • Kubernetes侧将SSL证书以Secret形式挂载到Pod指定路径,供应用读取证书文件,无需将证书打包进镜像。

2. Kubernetes Ingress层卸载HTTPS(生产环境更推荐)

该方案无需修改应用核心逻辑,由集群入口统一处理SSL协议,是云原生场景的通用方案:

  • 部署支持HTTPS的Ingress Controller(如Nginx Ingress、Traefik),在Ingress规则中绑定SSL证书,将HTTPS请求以HTTP形式转发到后端的Hot Chocolate服务
  • 配置Hot Chocolate允许Ingress转发请求,添加如下配置:
services.AddGraphQLServer()
    .ModifyRequestOptions(opt => 
    {
        opt.AllowGet = true;
    })
    // 其余原有GraphQL配置
    ;
  • 如需校验原始请求是否为HTTPS,可配置转接头中间件识别Ingress传递的X-Forwarded-Proto头:
services.Configure<ForwardedHeadersOptions>(options =>
{
    options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
    // 可添加Ingress Controller的IP段,避免请求头伪造
    options.KnownProxies.Add(IPAddress.Parse("你的Ingress服务IP段"));
});

// 在Configure方法最开头注册中间件
app.UseForwardedHeaders();

配置验证

部署完成后访问https://<你的服务域名>/graphql打开Banana Cake Pop IDE,确认可以正常发起查询、变更请求,无协议相关报错即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:24:04