更新: 刚刚尝试了官方示例https://github.com/aspnet/AspNetCore.Docs/tree/master/aspnetcore/fundamentals/servers/httpsys/samples/3.x/SampleApp,但它不起作用。
更多信息:
This site can’t provide a secure connection
localhost sent an invalid response.
输出:
info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0] User profile is available. Using 'C:\Users\xxx\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest. warn: Microsoft.AspNetCore.Server.HttpSys.MessagePump[0] Overriding address(es) 'https://localhost:5001, http://localhost:5000'. Binding to endpoints added to UrlPrefixes instead. info: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[0] Start info: Microsoft.AspNetCore.Server.HttpSys.HttpSysListener[0] Listening on prefix: http://localhost:5005/ info: Microsoft.Hosting.Lifetime[0] Now listening on: http://localhost:5005/ info: Microsoft.Hosting.Lifetime[0] Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0] Hosting environment: Development info: Microsoft.Hosting.Lifetime[0] Content root path: C:\Users\xxx\Downloads\AspNetCore.Docs-master\AspNetCore.Docs-master\aspnetcore\fundamentals\servers\httpsys\samples\3.x\SampleApp
我使用Windows身份验证创建了一个新的Blazor应用程序。 (Visual Studio 2019 V16.4.0,.Net Core 3.1)。
现在,在Visual Studio中与IIS Express一起运行时,Windows身份验证可以工作(网页的右上角显示“ Hello Domain \ Username!”)。但是,作为Kestrel应用程序运行时,Windows身份验证无法正常工作。
我按照以下链接中的步骤进行操作,以使Windows身份验证可以与Http.Sys一起使用。 (顺便说一句,我尝试过[茶est /谈判] [1],但是没有运气)
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/httpsys?view=aspnetcore-3.1
基本上,它只是在webBuilder.UseHttpSys()
的{{1}}中添加CreateHostBuilder()
的调用。
Program.cs
但是,运行该应用程序将获得一个错误页面,其中显示消息
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseHttpSys(options =>
{
options.AllowSynchronousIO = true;
options.Authentication.Schemes = AuthenticationSchemes.None;
options.Authentication.AllowAnonymous = true;
options.MaxConnections = null;
options.MaxRequestBodySize = 30000000;
// options.UrlPrefixes.Add("http://*:5005");
});
webBuilder.UseStartup<Startup>();
});
或
This site can’t be reached
The connection was reset.
Edge的错误消息是:
This site can’t provide a secure connection
localhost sent an invalid response.
IE错误消息:
无法安全连接到此页面
这可能是因为该站点使用了过时或不安全的TLS安全设置。如果这种情况持续发生,请尝试与网站所有者联系。
答案 0 :(得分:0)
解决方案是重新定位您的证书,并进行一些似乎没有必要的手动配置:我非常密切地关注 http.sys 示例的 Configure Windows Server 部分,但是运行了netsh http sslcert
命令的问题。问题在于 dotnet dev-certs https --trust
在哪里安装证书!在 What is the default location for certificates created using "dotnet dev-certs https" 中指出该工具将证书安装在当前用户的证书存储中,而不是本地计算机存储中。我必须将两个证书存储添加到 mmc
并将 localhost
证书复制到 Certificates (Local Computer)\Personal\Certificates
,此时 sslcert 命令完成,当我运行测试应用程序时,它成功与 TLS 连接。