无法配置 HTTPS 端点。未指定服务器证书,找不到默认开发人员证书

我工作在一个织物应用程序,其中我已经配置 HTTPS。它抛出了一个异常,尽管我有一个有效的安装证书。

126306 次浏览

我也有过类似的问题(但不完全一样)。
有了2.1你必须 配置你的证书。
我现在这样做 完全在应用程序中
你可以在这里找到我的帖子:
配置自托管 Kestrel 应用程序与证书的 https (互联网网络服务器)

只要看看解决方案..。

这个博客的这些指令对我很有用

  1. Dotnet dev-certs https —— clean
  2. Dotnet dev-certs https —— trust
  3. 重启 VS

我有同样的问题和清洁-> 然后安装证书帮助我(另一个答案在这里)。您也可以像生产服务器一样使用 签发证书。知道这个很有帮助。

我在使用 Visual Studio 的 Windows 10系统上遇到了这个问题。问题似乎是 GUI 中用于清除 HTTPS 本地证书的命令失败了,出现了一个我无法再复制的错误消息。

对我来说,解决方案是打开当前 Windows 帐户的 certmgr 并删除所有个人本地主机证书。那里有大约20张证书,因为我曾多次尝试重新创建它们。在删除所有这些证书之后,我运行了。网络核心 HTTPS API 再次和一切工作!

总之,为当前用户打开 certmgr 并清除所有个人/本地主机证书。

我在 OSX 和 dotnet dev-certs https --cleansudo dotnet dev-certs https --clean都不为我工作。最后,我能够通过以下步骤修复它。

  1. 进入钥匙链接口
  2. 解锁系统钥匙链
  3. 删除 localhost证书
  4. 运行 dotnet dev-certs https -t

您现在应该能够在不出现错误的情况下运行。

编辑:

如果在遵循上述答案之后,您确实遇到了读取 There was an error saving the HTTPS developer certificate...的错误,请检查这个答案 https://stackoverflow.com/a/56709117/621827

对我来说,问题是通过跑步解决的:

  1. Dotnet dev-certs https —— clean
  2. Dotnet dev-certs https ——冗长

enter image description here

不知道这对其他人有没有帮助,但我的 Mac 电脑就有这个问题。我在 Dropbox 中有这个项目,所以它是跨机器共享的,在“第二台”机器上,我必须手动删除“ obj”和“ bin”文件夹,然后重新运行应用程序,一切正常

如果您希望使用的环境不是 Development,不要忘记只有当 env 是 Development 时才会自动添加用户机密。

您可以使用 AddUserSecsecret方法来解决这个问题:

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>();
});

参见: https://learn.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=windows#access-a-secret

我也有同样的问题。 问题是这个项目使用的是.net 4.6.1而不是.net core。

在 Windows 中, dotnet dev-certs https --clean对我不起作用,我必须手动删除这些本地主机证书。

  1. 打开 certmgr.msc
  2. 删除“受信任的根证书颁发机构/证书”下的所有本地主机证书
  3. 运行 dotnet dev-certs https -t

我在命令提示符下运行它 Dotnet dev-certs https Dotnet dev-certs https-t

解决方案

(对于 Windows,不确定是否存在其他操作系统的相同问题/解决方案)

在命令提示符或 Powershell 终端中:

  • 运行 certmgr.msc并删除 个人证书受信任的根证书颁发机构证书下的所有 本地主机证书。
  • 然后单次运行 dotnet dev-certs https -t来创建和信任一个新的开发证书。
  • 通过运行 dotnet dev-certs https --check --verbose进行验证,或者再次尝试调试 ASP.NET 应用程序。

您可能还需要在创建新证书之前运行 dotnet dev-certs https --clean

  1. Dotnet 工具 uninstall —— global dotnet-dev-certs —— version (必需版本)
  2. Dotnet 工具 install —— global dotnet-dev-certs
  3. Dotnet dev-certs https —— trust

有关详细信息,请访问 GitHub 问题页面 给你以及官方文档 给你

我在‘ Startup.cs’文件中注释了下面一行,它对我很有用。

app.UseHttpsRedirection();

我遇到了这个问题,我的解决方案是重新开始。当我这样做并重新打开 VisualStudio2019时,它要求我接受一个新的 SSL 证书。在那之后,我就可以运行我的程序了。

还有一个细节——如果您通常作为普通(非管理)用户登录,请不要从管理命令提示 如果您有一个单独的管理级别标识运行“ dotnet dev-certs https”命令。在正常登录名下的正常命令提示符下运行它们。问我怎么知道的。翻译: 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝 P- 小宝宝

如果您在提升的命令提示符下运行这些命令(使用一个明显独立的管理标识) ,您将会遇到以下情况:

  • “ dotnet dev-certs https —— trust”就可以了
  • “ dotnet dev-certs https —— check —— verose”将告诉您一切正常
  • 当您尝试启动调试器时,VS 代码将继续显示“ Unable to configure HTTPS endpoint...”错误
  • 您将继续从浏览器中收到“证书不可信”警告。

如果看到这些问题,请从普通命令提示符运行“ dotnet dev-certs https”命令。帮我修好了。希望这能帮到别人,而不是像我一样浪费时间在这上面!

如果 dotnet dev-certs https --clean不工作。

  1. 打开 Run 并打开 mmc.exe
  2. 从“文件”菜单单击“添加/删除管理单元”,在 MMC 内部单击“添加/删除管理单元”。
  3. 在添加/删除管理单元窗口中,在可用的管理单元中查找证书并将其添加到选定的
  4. 选择用户帐户
  5. 在控制台 root-> 证书当前用户-> 个人单击证书
  6. 您将看到为当前用户颁发和安装的证书列表。不要删除或更改任何您不知道的证书,只删除与自签名本地主机 ASP.NET 核心相关的证书。

对于我删除的文件下的 file:\\%APPDATA%\Microsoft\SystemCertificates\My\Certificates和运行在 cmddotnet dev-certs https -t解决了我的问题。

打开 快跑,然后键入 Mmc.exe

enter image description here

enter image description here

双击证书双击证书

enter image description here

删除两个文件夹中的 localhost cert

enter image description here

那就打开你的能量壳

dotnet dev-certs https --clean
dotnet dev-certs https
dotnet dev-certs https --trust

如果你正在访问这个页面,如果你像我一样不幸尝试了这个页面上提到的每一个解决方案/方法,但没有任何效果,那么你可能想知道我做了什么,解决了我的问题。

无论我删除多少次本地主机证书,我都会从我的 ASP.NET Core Web 应用程序中得到这个错误。

enter image description here

然后,我使用 Powershell 和这个命令创建了一个自签名证书。[我从互联网上的某个地方拷贝了这个 PowerShell 片段。不记得来源。]

  $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"
}
}
}
}

运行应用程序,砰! 问题解决了,我使用了和我在“启动设置”中找到的一样的 URL https://localhost:5000。

enter image description here

我讨厌这样的解决方案,但至少我可以用这样的解决方案继续开发。我不知道最近到底发生了什么,我不得不面对这个问题。那是 Windows 更新吗?还是别的什么?我不知道。直到最近,我才面对这个问题。 是的,我记得在 Kestrel 运行网站而不是 IIS。

生成新的证书:

$ dotnet dev-certs https --trust
The HTTPS developer certificate was generated successfully.

如果使用 docker-compose 在本地运行应用程序,可能需要执行以下命令:

  • Dotnet dev-certs https —— clean
  • Dotnet dev-certs https-ep% USERPROFILE% . aspnet https aspnetapp.pfx-p { password here }
  • Dotnet dev-certs https —— trust

然后在 docker 中添加以下代码行-compose. yml:

environment:
- ASPNETCORE_Kestrel__Certificates__Default__Password=password
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
volumes:
- ~/.aspnet/https:/https:ro

更多细节见 https://learn.microsoft.com/en-us/aspnet/core/security/docker-compose-https?view=aspnetcore-6.0

如果您想摆脱这个问题,那么在 launchsetings.json 中更改“ useSSL”: false