本地IIS部署ASP.NET Core 6.0 Web API遇HTTPS连接失败求助
解决ASP.NET Core 6.0 Web API在IIS上的HTTPS绑定问题
你的问题核心是IIS作为反向代理处理HTTPS时,ASP.NET Core应用未能正确识别转发的HTTPS请求,导致UseHsts()和UseHttpsRedirection()中间件触发连接失败。以下是完整的本地HTTPS绑定配置方案:
1. 为IIS站点配置HTTPS证书
- 打开IIS管理器,定位到你的Web API站点,右键选择编辑绑定
- 点击添加,绑定类型选择
HTTPS,端口默认填443(如果端口被占用,可改用4430这类非标准HTTPS端口) - 在SSL证书下拉框中,选择一个可用证书:
- 没有证书的话,可在IIS服务器节点的服务器证书选项中,点击创建自签名证书,命名后选择Web主机存储位置,生成后即可在绑定中选择
2. 配置ASP.NET Core应用识别IIS转发的HTTPS请求
在Program.cs中添加转发头中间件,并确保其在UseHsts()和UseHttpsRedirection()之前执行:
var builder = WebApplication.CreateBuilder(args); // 配置IIS整合选项 builder.Services.Configure<IISOptions>(options => { options.ForwardClientCertificate = false; }); // 注册其他服务(如Controllers等) builder.Services.AddControllers(); var app = builder.Build(); // 启用转发头,让应用识别IIS传递的HTTPS请求标识 app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); // 恢复原本的HTTPS相关中间件 app.UseHsts(); app.UseHttpsRedirection(); // 其他中间件配置 app.UseAuthorization(); app.MapControllers(); app.Run();
3. 配置应用的HTTPS重定向参数
在appsettings.json中明确HTTPS端口,确保重定向逻辑正确:
{ "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, "AllowedHosts": "*", "HttpsRedirection": { "HttpsPort": 443 // 对应IIS绑定的HTTPS端口 } }
4. 验证与测试
- 重新发布Web API到本地文件夹,刷新IIS站点
- 直接访问
https://localhost(或你设置的端口),确认API正常响应,无连接拒绝错误
额外排查点
- 检查IIS站点的模块列表,确认存在
AspNetCoreModuleV2(.NET Hosting Bundle安装成功的标志) - 若端口冲突,可在IIS绑定中更换HTTPS端口,同步修改
appsettings.json中的HttpsPort值 - 查看Windows事件查看器中的ASP.NET Core日志,获取更详细的错误信息定位问题
内容的提问来源于stack exchange,提问作者Raj
相关产品推荐
相关产品推荐

