从服务器收到的无效证书。错误代码:0xffffffff800b010a 单声道
Posted
技术标签:
【中文标题】从服务器收到的无效证书。错误代码:0xffffffff800b010a 单声道【英文标题】:Invalid certificate received from server. Error code: 0xffffffff800b010a Mono 【发布时间】:2017-09-18 11:45:00 【问题描述】:我正在尝试使用带有 SSL 的端口 587 和 smtp.gmail.com 通过我的应用程序在 Mono 中发送消息并获取:
System.Net.Mail.SmtpException:无法发送消息。 ---> System.IO.IOException:身份验证或解密失败。 ---> System.IO.IOException:认证或解密失败。 ---> Mono.Security.Protocol.Tls.TlsException:无效 从服务器收到的证书。错误代码:0xffffffff800b010a
最有趣的是,那一周一切正常并且消息已发送。现在我弄错了。
我也试过mozroots --import
,但没有帮助。我还更新了证书 GoogleInternetAuthorityG2.crt 但这没有帮助。
Ubuntu 16.04 和 Mono 4.6.2(稳定版 4.6.2.7/08fd525)
【问题讨论】:
【参考方案1】:Mono 4.8或更高版本带来new TLS stack,支持更多加密算法,请升级。
【讨论】:
我正在取消 4.6.2(稳定版 4.6.2.7/08fd525) 那么,请升级【参考方案2】:在发送消息之前试试这个(这有点像黑客,但在 Mono 上这是唯一对我有用的东西..)
ServicePointManager.ServerCertificateValidationCallback =
delegate(object s, X509Certificate certificate,
X509Chain chain, SslPolicyErrors sslPolicyErrors)
return true; ;
【讨论】:
这是一个重要的安全风险,请尽量避免 需要这个来克服 Google 登录的障碍,不过我在完成后将其设置回原来的值,以防它暴露太多风险。 错误信息指出“认证或解密失败”。此解决方法适用于前者(身份验证失败),但不适用于后者(解密失败)。 YMMV。以上是关于从服务器收到的无效证书。错误代码:0xffffffff800b010a 单声道的主要内容,如果未能解决你的问题,请参考以下文章