我为客户端 开发了一个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/