gpt4 book ai didi

c# - 从服务器 xamarin.android 收到的证书无效

转载 作者:行者123 更新时间:2023-11-30 14:53:53 25 4
gpt4 key购买 nike

所以这让我疯狂了 1 天。我正在尝试与 xamarin.android 上的 REST API 通信,但出于某种原因我收到此错误:

InnerException  {Mono.Security.Protocol.Tls.TlsException: Invalidcertificate received from server. Error code: 0xffffffff800b010a   atMono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.RemoteValidation(Mono.Security.Protocol.Tls.ClientContext context, AlertDescriptiondescription) [0x00000] in :0    atMono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates(Mono.Security.X509.X509CertificateCollection certificates) [0x00000]in :0    atMono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1() [0x00000] in :0    atMono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process ()[0x00000] in :0    atMono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage(Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in :0    atMono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback(IAsyncResult asyncResult) [0x00000] in :0}   Mono.Security.Protocol.Tls.TlsException

经过一些研究,我发现这与我正在与之通话的服务器缺少证书有关(如果我错了请纠正我)。所以我将 SSL 证书添加到我的 Mac 上的钥匙串(keychain)中。我还运行了用于安装默认证书的 Mozilla 命令。

不幸的是,这仍然行不通。在 Windows 上,与 API 的连接就像一个魅力。据我了解,这是因为 Windows 拥有自己的 CA 存储区和一些默认证书。

最佳答案

我遇到了与您相同的问题,就我而言,我实际上设法弄清楚我的证书名称不匹配。我不知道如何解决的问题,因为我请求数据的不是我的服务器。

到目前为止,我使用的开发变通方法是抑制所有 SLL,并使用以下代码接受所有存在的内容:

                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
(
(srvPoint, certificate, chain, errors) => true
);

或者更短一些

ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(delegate { return true; });

但是,请注意,这不是问题的解决方案,而只是一种解决方法,因此您可以继续开发。

我希望这对您有所帮助,您现在可以暂时忘记这个令人讨厌的异常:-)

关于c# - 从服务器 xamarin.android 收到的证书无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28276182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com