【发布时间】:2019-04-17 10:27:36
【问题描述】:
我正在开发一个配置了 HTTPS 的结构应用程序。尽管我安装了有效的证书,但它会引发异常。
【问题讨论】:
标签: asp.net-core .net-core asp.net-core-2.1 kestrel
我正在开发一个配置了 HTTPS 的结构应用程序。尽管我安装了有效的证书,但它会引发异常。
【问题讨论】:
标签: asp.net-core .net-core asp.net-core-2.1 kestrel
this blog 的这些指示对我有用
【讨论】:
我在 OSX 上,dotnet dev-certs https --clean 和 sudo dotnet dev-certs https --clean 不适合我。最后,我能够通过以下步骤修复它。
localhost证书dotnet dev-certs https -t
您现在应该可以正常运行了。
编辑:
如果在遵循上述答案后,您确实遇到了错误,显示为There was an error saving the HTTPS developer certificate...,请查看此答案https://stackoverflow.com/a/56709117/621827
【讨论】:
sudo 的身份运行,但它仍然无法正常工作。我不得不从钥匙串中手动删除它来解决这个问题。
(对于 Windows,不确定其他操作系统是否存在类似的问题/解决方案)
在命令提示符或 Powershell 终端中:
certmgr.msc 并删除 Personal\Certificates 和 Trusted Root Certification Authorities\Certificates 下的所有 localhost 证书。dotnet dev-certs https -t 以创建并信任新的开发证书。dotnet dev-certs https --check --verbose 进行验证,或者再次尝试调试您的 ASP.NET 应用程序。在创建新证书之前,您可能还需要运行 dotnet dev-certs https --clean。
【讨论】:
我在使用 Visual Studio 的 Windows 10 系统上遇到了这个问题。问题似乎是 GUI 中用于清除 HTTPS 本地证书的命令失败,并出现我无法再重现的错误消息。
我的解决方案是打开当前 Windows 帐户的 certmgr 并删除所有个人 localhost 证书。那里有大约 20 个证书,因为我已经尝试过多次重新创建它们。删除所有这些证书后,我再次运行了我的 .Net 核心 HTTPS API,一切正常!
总而言之,为当前用户打开您的 certmgr 并清除所有个人/本地主机证书。
【讨论】:
对我来说,删除 file:\\%APPDATA%\Microsoft\SystemCertificates\My\Certificates 下的文件并在 cmd dotnet dev-certs https -t 中运行解决了我的问题。
【讨论】:
在 Windows 中, dotnet dev-certs https --clean 对我不起作用,我必须手动删除这些 localhost 证书。
dotnet dev-certs https -t
【讨论】:
我遇到了类似(但不完全相同)的问题。
对于 2.1,您必须配置您的证书。
我现在完全在 appsettings.json 中执行此操作。
你可以在这里找到我的帖子:
Configure self hosting Kestrel App with certificate for https (internet web server)
只看一下解决方案...
【讨论】:
如果dotnet dev-certs https --clean 不起作用。
【讨论】:
我有同样的问题和清洁 -> 然后安装证书对我有帮助(这里有另一个答案)。你也可以issue a certificate 作为生产服务器。很有帮助。
【讨论】:
不确定这是否对其他人有帮助,但我在我的 Mac 上确实遇到了这个问题。我在 Dropbox 中有项目,因此它在机器之间共享,在“第二台”机器上,我必须进入并手动删除“obj”和“bin”文件夹,然后重新运行应用程序,一切正常
【讨论】:
如果您想使用非开发环境,请不要忘记只有在 env 是开发环境时才会自动添加用户密码。
您可以使用 AddUserSecrets 方法来解决这个问题:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureAppConfiguration((hostingContext, builder) =>
{
var env = hostingContext.HostingEnvironment;
if (env.IsEnvironment("Local"))
{
builder.AddUserSecrets<Startup>();
}
})
.UseStartup<Startup>();
});
【讨论】:
我遇到了同样的问题。 问题是该项目使用的是 .net 4.6.1 而不是 .net core。
【讨论】:
我在命令提示符下运行它。顺便说一句,我正在使用 Window 10 dotnet 开发证书 https dotnet dev-certs https -t
【讨论】:
我遇到了这个问题,我的解决方案是重新启动。当我这样做然后重新打开 Visual Studio 2019 时,它要求我接受新的 SSL 证书。之后,我就可以运行我的程序了。
【讨论】:
更多细节 - 如果您通常以普通(非管理员)用户身份登录,请勿在管理员命令提示符下运行“dotnet dev-certs https”命令如果您有单独的管理员级别身份。在正常登录下的正常命令提示符下运行它们。问我怎么知道的。 :-P
如果您从提升的命令提示符(使用明显独立的管理员身份)运行这些命令,您将遇到以下情况:
如果您看到这些问题,请从普通命令提示符运行“dotnet dev-certs https”命令。为我修好了。希望这可以帮助某人,而无需花费我在这方面所做的时间!
【讨论】:
如果您正在访问此页面,并且如果您像我一样不幸尝试了此页面上提到的所有解决方案/方法但没有任何效果,那么您可能想知道我做了什么并解决了我的问题。
无论我删除了多少次本地主机证书,我都从我的 ASP.NET Core Web 应用程序中收到此错误。
然后,我通过这个命令使用 Powershell 创建了一个自签名证书。 [我从互联网上的某个地方复制了这个 PowerShell sn-p。不记得出处了。]
$cert = New-SelfSignedCertificate -DnsName mydemowebapp.net -CertStoreLocation cert:\LocalMachine\My
$pwd = ConvertTo-SecureString -String "MyPassword" -Force -AsPlainText
Export-PfxCertificate -Cert $cert -FilePath C:\temp\cert.pfx -Password $pwd
然后,在我的 appsertings.Development.json 中,我添加了这个条目。
"Kestrel": {
"EndPoints": {
"Https": {
"Url": "https://localhost:5000",
"Certificate": {
"Path": "C:\\temp\\cert.pfx",
"Password": "MyPassword",
"AllowInvalid": "true"
}
}
}
}
运行应用程序,砰!问题解决了。我使用了与我在 LaunceSettings 中找到的 URL https://localhost:5000 相同的 URL。
我讨厌这样的解决方案,但至少我可以用这样的解决方案继续我的开发。我不知道最近到底发生了什么,我不得不面对这个问题。那是windows更新吗?或者是其他东西?我不知道。我以前没有遇到过这个问题,直到最近。 是的,我记得在 Kestrel 而不是 IIS 中运行网站。
【讨论】:
我在“Startup.cs”文件中注释了以下行,它对我有用。
app.UseHttpsRedirection();
【讨论】: