gpt4 book ai didi

ssl - 从 Web App 调用 Web API 时出现证书问题

转载 作者:行者123 更新时间:2023-12-04 10:41:07 25 4
gpt4 key购买 nike

我正在本地开发一个 web api 和一个 web 应用程序。我无法从 Web 应用程序调用 Web api。

当我调用它时,我不断收到错误消息:“根据验证程序,远程证书无效。”

这两个应用程序都是使用 ASP.Net Core 构建的,并且在 kestrel 上运行。 webapp 可调用为 https://mylibrary.com:5003并且 Web API 可调用为 https://api.mylibrary.com:5001 .

我怎样才能让他们使用有效的证书一起工作?

编辑:意识到问题是应用程序默认使用本地主机证书。我希望能够使用我自己的自签名证书。

如果有人能指出我在某个地方解释如何设置两个应用程序以在 .net 核心 Web 项目中使用自签名证书,请执行 :)

最佳答案

如果您需要使用 HttpClient 解决证书验证问题,您可以按照 Rohit Jangid's answer 创建一个 HttpClientHandler 并将其传递给 HttpClient 来完成。至The SSL connection could not be established

HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; };

// Pass the handler to httpclient(from you are calling api)
HttpClient client = new HttpClient(clientHandler)

通过检查它是否在开发环境中,避免意外绕过生产中的证书验证:

HttpClient httpClient = new HttpClient();
if (env.IsDevelopment())
{
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, ssl) => { return true; };

httpClient = new HttpClient(clientHandler);
}

通过在处理程序/操作中注入(inject)有关 webhostenvironment 的信息:

public async Task OnGet([FromServices] IWebHostEnvironment env)

关于ssl - 从 Web App 调用 Web API 时出现证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59926115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com