- 我尝试实现一个使用客户端证书保护的 asp.net core WebAPI 应用程序。我使用了来自 docs.microsoft 和其他站点的 Internet 示例代码。为了测试我构建的内容,我生成了 CA 证书、服务器证书和客户端证书。服务器和客户端证书都是使用该一个 CA 创建的。我还将 CA 证书添加到 TrustedRoot 存储中。
运行应用程序后,每次使用客户端证书调用该端点时,我都会收到 403 错误 Unathorized(在 Chrome 和 Firefox 中尝试过)。除了 403 之外,我还可以在控制台中看到一条消息“证书验证失败,主题是... ”和“ ReplicationStatusUnknown 吊销功能无法检查证书的吊销。 ”
- 我不明白这个错误来自哪里,所以我无法追踪它。我尝试在 asp.net core 源代码中搜索该短语的部分内容,或者使用来自 microsoft pdb 服务器的源代码符号进行调试,但我不明白错误来自何处。我怀疑这是因为我使用自签名证书,但错误消息具有误导性。
- 这是我的代码:Program.cs
using System.IO;
using System.Security.Cryptography.X509Certificates;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Server.Kestrel.Https;
using Microsoft.Extensions.Hosting;
namespace AuthEndpoint
{
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseStartup<Startup>()
.ConfigureKestrel(options =>
{ …
Run Code Online (Sandbox Code Playgroud)