要解决“本地UWP客户端与本地asp.net core api web服务器之间的证书机构无效或不正确”的问题,您可以按照以下步骤进行操作:
创建自签名证书:
openssl req -newkey rsa:2048 -nodes -keyout localhost.key -x509 -days 365 -out localhost.crt
在ASP.NET Core API Web服务器中使用自签名证书:
Program.cs
文件中,在CreateHostBuilder
方法中添加以下代码以配置Kestrel服务器使用自签名证书:public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options =>
{
options.Listen(IPAddress.Any, 443, listenOptions =>
{
listenOptions.UseHttps("localhost.crt", "localhost.key");
});
})
.UseStartup();
});
在UWP客户端中信任自签名证书:
Package.appxmanifest
文件。Package.appxmanifest
文件中,添加以下代码以信任自签名证书:
在UWP客户端中忽略证书验证错误:
// 创建HttpClientHandler实例
var handler = new HttpClientHandler();
// 忽略证书验证错误
handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
// 创建HttpClient实例
var client = new HttpClient(handler);
// 发送HTTP请求
var response = await client.GetAsync("https://localhost/api/example");
通过以上步骤,您将能够在UWP客户端与ASP.NET Core API Web服务器之间建立安全连接,同时忽略证书机构无效或不正确的错误。请确保在生产环境中使用有效的证书。