首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >HttpClient窗体中的错误。根据验证过程,远程证书无效。

HttpClient窗体中的错误。根据验证过程,远程证书无效。
EN

Stack Overflow用户
提问于 2022-09-10 03:46:34
回答 1查看 183关注 0票数 1

我们目前正在转换VB.Net中运行在.NET Framework4.8上的一个旧的Web应用程序,以使用一个新的.NET 6API,然后再将Web应用程序替换为一个现代的JS前端。我们正在用调用新API来替换存储库调用,使用HttpClient来实现这一点。我们使用的是NuGet版本的HttpClient,而不是.NET框架版本。WebForms应用程序在托管于开发机器上的IIS中运行,API也使用Kestrel运行在开发机器上。

证书是为本地主机颁发的,两个应用程序都在不同端口上的本地主机上服务。

不幸的是,当使用自签名的dev cert在dev计算机上运行时,当调用PostAsync()PutAsync()时,我们会得到以下异常

代码语言:javascript
运行
复制
System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.

我已经搜索和尝试了几乎每一个类似问题的答案,并尝试了这些案例中的大多数答案。这包括将cert添加到RCA/ICA,并使用

代码语言:javascript
运行
复制
dotnet dev-certs https --clean
dotnet dev-certs https
dotnet dev-certs https --trust

我甚至已经将IIS切换到使用SSL的dev cert,以防止出现问题。

我没有尝试过的唯一解决方案,因为它更像是一个黑客,而不是一个解决方案,就是绕过整个证书验证过程。这不是一个可行的长期解决办法。

Web应用程序可以成功地调用各种Azure,包括Key Vault和Azure Files,因此HttpClient本身并不是一个问题。API可以从Firefox/Chrome/Edge获得,没有任何问题。

除了我尝试过的和我不愿意做的以外,还有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2022-09-12 21:06:05

发现了问题。

dotnet dev-certs https --create在证书-当前用户(certmgr.msc)存储中生成开发证书。.NET框架在证书-本地计算机(certlm.msc)存储区中查找证书。

将创建的开发证书复制到个人->证书和受信任根证书颁发机构的本地计算机存储区中,->证书文件夹修复了该问题。严格地说,我不知道它需要是个人文件夹还是TRCA文件夹,但我把它放在两个地方只是为了确定。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73669132

复制
相关文章

相似问题

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