首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Web应用程序调用Web API时出现证书问题

从Web应用程序调用Web API时出现证书问题
EN

Stack Overflow用户
提问于 2020-01-27 06:34:50
回答 2查看 1.4K关注 0票数 2

我正在本地开发一个web api和一个web应用程序。我在从web应用程序调用web api时遇到问题。

当我调用它时,我总是收到错误:“根据验证过程,远程证书是无效的。”

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

我如何让它们与有效的证书一起工作?

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

如果有人能告诉我如何在.net核心web项目中设置两个应用程序来使用自签名证书,请这样做:)

EN

回答 2

Stack Overflow用户

发布于 2020-05-27 09:47:18

如果需要使用HttpClient解决证书验证问题,可以通过创建一个HttpClientHandler并将其按照Rohit Jangid's answer传递给The SSL connection could not be established的方式传递给HttpClient

代码语言:javascript
运行
AI代码解释
复制
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)

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

代码语言:javascript
运行
AI代码解释
复制
HttpClient httpClient = new HttpClient();
if (env.IsDevelopment())
{
    HttpClientHandler clientHandler = new HttpClientHandler();
    clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, ssl) => { return true; };

    httpClient = new HttpClient(clientHandler);
}

通过在处理程序/操作中注入关于webhostenvironment的信息:

代码语言:javascript
运行
AI代码解释
复制
public async Task OnGet([FromServices] IWebHostEnvironment env)
票数 2
EN

Stack Overflow用户

发布于 2020-01-27 09:04:42

请尝试使用RestSharp库发出webapi请求,并将证书验证设置为true。请参阅here

或者,您可以通过在命令提示符或powershell中执行dotnet dev-certs https --trust来安装dotnet dev证书

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59926115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档