【发布时间】:2016-02-04 01:44:57
【问题描述】:
尝试使用 HTTPWebRequest 类进行 https 调用并返回 TlsException:从服务器收到无效证书时出现问题。错误代码:尝试 GetRequest() 时出现 0xffffffff800b010a。稍后也会重新抛出“身份验证或解密失败”。
因此,关闭此链接http://www.mono-project.com/docs/faq/security/ 和关于 SO 的各种问题(都是 2013 年或更早的...),我得出的结论是,问题在于 mono 没有默认安装根证书。常见问题解答指向使用较新版本的单声道(3.1),如果仍然使用单声道的 2.x 版本,这是不可能的,因为统一。或使用 mozroots.exe 文件加载证书。
但我不确定如何在 Mac 上运行 mozroots 进行开发,或者在项目中包含证书,因此当我为 android 构建时,它包含手机使用的证书。
此外,大多数人建议覆盖 ServicePointManager.ServerCertificateValidationCallback 以返回 true,但这实际上绕过了 SSL 验证,这是不可接受的。如果有人可以为我们指明正确的方向,即使用操作系统通常与 HTTPWebRequest 一起使用的预装电话证书,或者将证书从电话/项目导入单声道证书存储,那将不胜感激.
【问题讨论】:
-
您最终找到了解决方法吗?我在使用 SmtpClient 时遇到了同样的问题,我感谢有关该主题的任何信息。