C#/UWP : How to manage certificate errors with HttpClient?

标签 c# ssl uwp certificate httpclient

我为客户端 开发了一个UWP 应用,它使用托管在其域中的网络服务

  • 到目前为止,URL WebServices 与不使用 SSL 的测试服务器相关

  • 但现在,Web 服务 URL 与使用 SSL

    prod server 相关

由于我是分包商,我没有AD账号,我需要使用VPN来访问客户的WebServices。

我在访问测试服务器时没有遇到任何问题,但在生产服务器上就不再是这种情况了。

当我尝试通过导航器访问 URL 时,我收到一条安全警告消息 (DLG_FLAGS_INVALID_CA),但我可以“强制”导航到 URL。

但是当我使用 HttpCLient 从应用程序调用 WebService 时,我也收到错误 (HttpRequestException),而且我不知道如何修复它。

以下是异常的详细信息:

HResult = -2147012851

InnerException = {System.Runtime.InteropServices.COMException (0x80072F0D): Can't find text related to the error code. The certificate authority is invalid or is incorrect at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) ...

Message = "An error occurred while sending the request."

Source = "System.Net.Http"

我已经尝试在我的计算机上手动安装证书,但这并不能解决问题...

还有其他方法吗?

编辑:添加“用户”证书

客户端向我发送了“用户”证书,我将其安装在计算机上的“User\Trusted Root Certification Authorities Certificate Store”中:不再有问题从导航器。但是,在应用程序中,问题仍然存在。

这正常吗?我是否需要将证书“附加”到应用程序?这不是很有用,因为客户的用户不需要这个问题:只有我是使用 VPN 的分包商...

编辑:添加“计算机”证书

最后客户端发给我“computer”证书,我把它安装在我电脑的“Computer\Trusted Root Certification Authorities Certificate Store”:这次我可以可以毫无问题地使用该应用程序。

很高兴知道 UWP 应用和导航器不使用相同的证书。

最佳答案

已通过安装客户端发送的“用户”“计算机”证书解决了这个问题。

关于C#/UWP : How to manage certificate errors with HttpClient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49872872/

相关文章:

C# + SQL Server - 将新行读入内存的最快/最有效的方法

c# - 是否可以在 VS 2013 中使用 HTML 设计器来构建 MVC Web 应用程序?

c# - 使用带有登录页面的 HttpWebRequest 发送数据

php - stream_context_create 证书验证失败

java - 带有 FTP 登录错误的 HTTPS 客户端 : javax.net.ssl.SSLException: 502 SSLv23/TLSv1 java

ssl - 服务器如何加密? (特别是 openSSL)

c# - 如何在 Windows 10 UWP 上获取用户的区域?

c# - 重写if语句: One of these statements ended up with one too many pair of braces

c# - 如何将 uwp 应用程序集成到 jpg 的 Windows 资源管理器的上下文菜单中?

c# - x :Bind not binding to attached property