.NET 7.0中UseHttpsRedirection与IIS生产部署问题排查
.NET 7.0 升级后 HTTPS 重定向与 AWS ELB 访问问题解决
问题场景
将.NET Framework架构的UI和API应用升级至.NET 7.0后,部署到生产环境遇到两类问题:
- 本地开发环境通过localhost访问时,启用
app.UseHttpsRedirection();后提示找不到有效证书 - 通过AWS ELB访问应用时出现超时,此前.NET Framework版本未配置HTTPS重定向,HTTP访问正常,AWS端SSL证书配置无误
排查过程
- 尝试将PFX证书导入IIS,本地访问仍无法识别有效证书
- 移除
app.UseHttpsRedirection();并修改launchSettings.json后,ELB自动跳转至HTTP时超时,但手动修改URL为HTTPS可正常访问,说明应用本身HTTPS服务正常,问题出在请求转发与重定向逻辑上
最终解决方案
通过以下三步调整解决问题:
- 移除
app.UseHttpsRedirection();中间件 - 配置ForwardedHeaders识别ELB转发请求
在UI项目的Program.cs中添加请求头转发配置,让应用正确识别ELB转发过来的协议信息:app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); - 调整AWS ELB配置
将ELB的HTTP监听器设置为自动重定向至HTTPS
内容的提问来源于stack exchange,提问作者Ebikeneser
相关产品推荐
相关产品推荐

