IIS 和 .NET 5 ASP.NET MVC 5 应用程序、HttpsRedirect 在 IIS 服务器之外无法工作
IIS and .NET 5 ASP.NET MVC 5 App, HttpsRedirect not working outside IIS Server
我有一个 ASP.NET Core 5 MVC 应用程序,运行 在 IIS 10 服务器上运行良好。
我被要求启用 HTTPS 并在端口 6443 上强制执行它。我已获得证书并在 IIS 上进行了配置。
在服务器本地进入 Chrome 并进入 http://localhost
时,您会正确地重定向到 https://localhost:6443
绑定已配置:
证书没问题,本地有效。
当我从网络中的另一个位置访问服务器的 ip 地址时,如果我以 https 访问它,它可以工作。
如果我访问 http,我得到这个 chrome 错误:
ERR_CONNECTION_REFUSED, check connection or proxy.
这没有任何意义,在启用 https 之前,它在 http:80 上工作正常,并且在本地,重定向有效。
代码是这样的 (Startup.cs):
public void Configure(IApplicationBuilder app)
{
if (appOptions.HttpsRedirectionEnabled)
{
app.UseHttpsRedirection();
}
// The default HSTS value is 30 days. You may want to change
// this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
和
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status301MovedPermanently;
options.HttpsPort = 6443;
});
}
此外,访问 https://serverip 似乎也不起作用,有点像在 443 而不是 6443 上重定向。所以我只在本地工作。
我不想安装任何 url 重写的东西,这必须正常工作。
我在 IIS 或其他任何东西上缺少什么配置?
编辑:被要求添加来自 chrome 开发工具的跟踪,这里是:
更详细的跟踪
Chrome hsts 部分:
但是查询这个发现东西
如评论中所述,浏览器已缓存 an HSTS response for the server, telling it to always request the secure version of the site. As per RFC 6797,这只会重定向到端口 443
。
禁用 HSTS headers 并清除来自 Chrome 的缓存响应(使用 chrome://net-internals/#hsts
设置页面)解决了该问题。
我有一个 ASP.NET Core 5 MVC 应用程序,运行 在 IIS 10 服务器上运行良好。
我被要求启用 HTTPS 并在端口 6443 上强制执行它。我已获得证书并在 IIS 上进行了配置。
在服务器本地进入 Chrome 并进入 http://localhost
时,您会正确地重定向到 https://localhost:6443
绑定已配置:
证书没问题,本地有效。
当我从网络中的另一个位置访问服务器的 ip 地址时,如果我以 https 访问它,它可以工作。
如果我访问 http,我得到这个 chrome 错误:
ERR_CONNECTION_REFUSED, check connection or proxy.
这没有任何意义,在启用 https 之前,它在 http:80 上工作正常,并且在本地,重定向有效。
代码是这样的 (Startup.cs):
public void Configure(IApplicationBuilder app)
{
if (appOptions.HttpsRedirectionEnabled)
{
app.UseHttpsRedirection();
}
// The default HSTS value is 30 days. You may want to change
// this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
和
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status301MovedPermanently;
options.HttpsPort = 6443;
});
}
此外,访问 https://serverip 似乎也不起作用,有点像在 443 而不是 6443 上重定向。所以我只在本地工作。
我不想安装任何 url 重写的东西,这必须正常工作。
我在 IIS 或其他任何东西上缺少什么配置?
编辑:被要求添加来自 chrome 开发工具的跟踪,这里是:
更详细的跟踪
Chrome hsts 部分:
但是查询这个发现东西
如评论中所述,浏览器已缓存 an HSTS response for the server, telling it to always request the secure version of the site. As per RFC 6797,这只会重定向到端口 443
。
禁用 HSTS headers 并清除来自 Chrome 的缓存响应(使用 chrome://net-internals/#hsts
设置页面)解决了该问题。