An Azure service that provides a general-purpose, serverless container platform.
Hi Shreeraksha.G,
Welcome to Microsoft Q&A,
1. Are the http/https LB rules platform-managed?
Yes. Both ports 80 and 443 are exposed by design on the Container Apps managed environment, this is documented as fixed platform behavior, not something configured per app.
2. Can customers modify or remove these LB rules?
No. The managed Load Balancer and its public IP live in the platform-managed resource group, not your subscription's resource group or subnet. You don't have access to edit or delete these rules directly.
3. Is allowInsecure = false the only supported behavior for HTTP?
Yes, on the app level. With allowInsecure set to false (the default), HTTP requests on port 80 get automatically redirected to HTTPS on 443. The port 80 listener itself still exists at the platform LB to handle that redirect, there's no app-level setting to make port 80 stop listening entirely.
4. Microsoft-recommended approach to fully expose only 443
External environment (public managed IP): Closing port 80 at the network layer isn't supported. The official guidance is explicit that NSG or firewall rules can't lock down inbound traffic on an external workload profile environment, since that traffic doesn't route through your subnet at all. The supported path here is to put Azure Front Door or Application Gateway in front of your Container App and block port 80 at that layer instead, then point your public DNS/clients at the Front Door or App Gateway endpoint rather than the Container App's own FQDN.
Internal environment (VNet-injected): Here inbound traffic does route through your subnet, so this is the one case where blocking port 80 is genuinely possible. Apply an NSG rule on your container app's subnet that denies inbound TCP on ports 80 and 31080 while still allowing 443 and 31443. This works because the internal environment's edge proxy listens on those exact ports behind the internal load balancer.
Please Upvote and accept the answer if it helps!!