Nginx搭配LetsEncrypt证书部署带HTTPS的.Net Core服务故障求助
核心问题定位
- Kestrel 配置冲突且HTTPS端点启动失败:你同时在
appsettings.json和Program.cs中配置了监听地址,UseUrls的优先级高于配置文件,且HTTPS端点未配置对应证书,导致服务启动时60111端口根本没有正常监听,Nginx代理请求到不存在的端口后 fallback 到默认页。 - Nginx 反向代理目标配置错误:将HTTPS流量代理到了未启动的60111端口,而非可用的HTTP 60110端口。
- (潜在问题)你贴出的443配置中
server_name MyDomain.tech末尾缺少分号,可能导致配置未实际生效,或存在Nginx默认站点配置优先级高于自定义vhost的情况。
修复步骤
1. 修正.NET端冗余配置(采用Nginx做SSL卸载的最佳实践,无需Kestrel单独处理HTTPS)
- 调整
appsettings.json,删除无用的HTTPS端点配置:
"Kestrel": { "Endpoints": { "Http": { "Url": "http://localhost:60110" } } }
- 简化
Program.cs配置,删除会覆盖配置文件的UseUrls和冗余的UseKestrel调用:
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); });
- 调整
Startup.cs,确保UseForwardedHeaders放在所有中间件的最前面,用于识别Nginx传递的HTTPS头:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { // 必须放在最前面 app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto }); if (env.IsProduction()) { app.UseHsts(); } app.UseHttpsRedirection(); // 其余中间件... }
修改完成后重新编译发布.NET服务,确认60110端口正常监听。
2. 修正Nginx配置
- 删除
sites-enabled目录下的默认站点软链接,避免优先级冲突:
sudo rm /etc/nginx/sites-enabled/default
- 调整443端口vhost配置,修改代理目标为Kestrel的HTTP监听端口,补全缺失的分号:
server { listen 443 ssl; ssl_certificate /path/to/fullchain.pem; #managed by Certbot ssl_certificate_key /path/to/privkey.pem; #managed by Certbot root /var/www/websiteFolder; server_name MyDomain.tech; location / { proxy_pass http://localhost:60110; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
- 建议调整80端口vhost配置,强制所有HTTP请求跳转HTTPS:
server { listen 80; server_name MyDomain.tech; return 301 https://$host$request_uri; }
- 校验配置并重载生效:
sudo nginx -t sudo nginx -s reload
内容的提问来源于stack exchange,提问作者Bigbear
相关产品推荐
相关产品推荐

