【问题标题】:Invalid certificate received from server. Error code: 0xffffffff800b010a Mono从服务器收到的无效证书。错误代码:0xffffffff800b010a 单声道
【发布时间】: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)

【问题讨论】:

    标签: c# linux ubuntu mono xsp


    【解决方案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。
    猜你喜欢
    • 2015-04-01
    • 2022-07-25
    • 2013-09-16
    • 2017-06-01
    • 2023-03-17
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多