From c7b38d6134b59c113a83fc265143b44477d67776 Mon Sep 17 00:00:00 2001 From: Benjamin Michaelis Date: Tue, 19 May 2026 21:37:19 -0700 Subject: [PATCH 1/2] Fix: Apply HTTPS redirection in non-Development environments - Inverted the IsDevelopment() check so UseHttpsRedirection middleware runs in Production/Staging - Previously middleware was only applied in Development, which is backwards - Now correctly enforces HTTPS in production deployments --- EssentialCSharp.Web/Program.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EssentialCSharp.Web/Program.cs b/EssentialCSharp.Web/Program.cs index f5c980ad..7d7af5d5 100644 --- a/EssentialCSharp.Web/Program.cs +++ b/EssentialCSharp.Web/Program.cs @@ -548,9 +548,9 @@ await McpJsonRpcResponseWriter.WriteErrorAsync( Predicate = r => r.Tags.Contains("live") }).DisableRateLimiting(); - if (app.Environment.IsDevelopment()) + if (!app.Environment.IsDevelopment()) { - app.UseHttpsRedirection(); + app.UseHttpsRedirection(); } app.UseStaticFiles(); From 391cead67e25123722d704d05b15e1504822e135 Mon Sep 17 00:00:00 2001 From: Benjamin Michaelis Date: Tue, 19 May 2026 21:51:47 -0700 Subject: [PATCH 2/2] Configure explicit HTTPS port for redirection middleware - Add AddHttpsRedirection() service configuration with HttpsPort = 443 - Ensures middleware reliably enforces HTTPS redirects in production behind TLS-terminating proxy - Prevents silent failure of HTTPS redirection when port cannot be auto-detected - Positioned after AddTrustedForwardedHeaders() to group proxy-related configurations --- EssentialCSharp.Web/Program.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/EssentialCSharp.Web/Program.cs b/EssentialCSharp.Web/Program.cs index 7d7af5d5..bae297e4 100644 --- a/EssentialCSharp.Web/Program.cs +++ b/EssentialCSharp.Web/Program.cs @@ -136,6 +136,10 @@ private static void Main(string[] args) }); builder.Services.AddTrustedForwardedHeaders(builder.Configuration, builder.Environment); + builder.Services.AddHttpsRedirection(options => + { + options.HttpsPort = 443; + }); ConfigurationManager configuration = builder.Configuration; string connectionString = builder.Configuration.GetConnectionString("EssentialCSharpWebContextConnection") ?? throw new InvalidOperationException("Connection string 'EssentialCSharpWebContextConnection' not found.");