Azure App Service无效URL默认404页面出现SSL错误求助
解决Azure App Service + Application Gateway下404页面SSL错误问题
核心原因
当访问无效URL时,App Service返回的默认404页面未通过Application Gateway的SSL终止链路,或者App Service未正确绑定自定义域名的SSL证书,导致浏览器收到的响应使用了非信任的证书(比如Azure默认的.azurewebsites.net证书),从而触发"连接不安全"提示。
具体解决步骤
1. 为ASP.NET MVC配置自定义404错误页
替换App Service的默认404页面,确保所有无效路径请求返回自定义错误页,且页面通过正确SSL链路返回:
- 方法1:通过
web.config配置
在项目根目录的web.config中添加或修改customErrors节点:
同时在MVC项目中创建<system.web> <customErrors mode="On" defaultRedirect="~/Error/General"> <error statusCode="404" redirect="~/Error/NotFound"/> </customErrors> </system.web>ErrorController,实现NotFound动作返回自定义视图:public class ErrorController : Controller { public ActionResult NotFound() { Response.StatusCode = 404; return View(); } } - 方法2:通过全局错误处理
在Global.asax.cs的Application_Error方法中捕获404错误并跳转:protected void Application_Error(object sender, EventArgs e) { var exception = Server.GetLastError(); var httpException = exception as HttpException; Response.Clear(); Server.ClearError(); if (httpException?.GetHttpCode() == 404) { Response.RedirectToAction("NotFound", "Error"); } // 其他错误处理逻辑 }
2. 验证Application Gateway后端配置
确保所有请求(包括无效路径)都正确路由到绑定了自定义SSL证书的App Service:
- 检查后端池:确认目标是你的自定义域名(而非
xxx.azurewebsites.net),默认域名的SSL证书仅对Azure子域名有效,无法匹配自定义域名。 - 检查后端HTTP设置:协议选择
HTTPS,根据证书情况配置"验证后端证书"选项(Azure管理证书可启用验证,自签证书需关闭验证)。 - 检查路由规则:确保所有路径(包括通配符路径
/*)都关联到正确的后端池和HTTP设置,避免无效路径被路由到错误后端或返回Gateway自身错误页。
3. 确认App Service的自定义域名与SSL绑定
确保App Service完成以下配置:
- 在Azure门户的App Service"自定义域名"页面,添加并绑定你的自定义域名。
- 为该自定义域名配置SSL证书(可选Azure免费管理证书,或上传自有证书),确保证书状态为"已绑定"。
4. 测试与验证
部署修改后的MVC应用,访问无效路径,确认:
- 浏览器返回自定义404页面。
- 地址栏显示安全锁图标,无SSL错误提示。
内容的提问来源于stack exchange,提问作者Visha
相关产品推荐
相关产品推荐

