【问题标题】:SSL Error while connecting through cellular connection通过蜂窝连接连接时出现 SSL 错误
【发布时间】:2019-10-07 02:37:05
【问题描述】:

我们使用 Xamarin 开发了应用程序 iOS 应用程序。

它在我的测试设备中运行良好。我的客户在使用 蜂窝连接 时遇到了 SSL 错误问题。

当他使用 Wifi 连接时,相同的应用程序运行良好。

我正在使用现代 HTTP 客户端建立 Web 连接以使用本机 API。

  • 我还在 IPV6 环境中测试了应用程序,它也可以正常工作。
  • App 传输安全设置没问题,我已验证。 [如果出现错误,那么无论连接类型如何,它都会一直出现。]

问题出在远程,所以我没有太多机会尝试各种设置、调试并查看导致此问题的原因。 有任何线索或方向会非常有帮助。

注意:使用第三方在线工具,我们已验证我们的服务器符合 ATS 并使用 TLS 1.2

堆栈跟踪

System.Net.WebException: An SSL error has occurred and a secure connection to the server cannot be made. ---> Foundation.NSErrorException: Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSErrorFailingURLStringKey=MYURL, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, 

_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <5C93BDAD-10CE-478B-9D72-5AA02AA84617>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <5C93BDAD-10CE-478B-9D72-5AA02AA84617>.<1>"
), NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=MYURL, NSUnderlyingError=0x282ea41e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" 

UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9816, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9816}}, _kCFStreamErrorCodeKey=-9816}

更新 我们已经更新了服务器实例,这使得这个问题是随机的,而不是一直在产生。删除了 HTTP 客户端,但问题仍然存在。我们既没有得到步骤或情况来一直生产它,也没有修复。

【问题讨论】:

  • 您好,我们的 iOS 应用程序遇到了同样的问题,AWS 后端运行 Kubernetes。你最终找到解决方案了吗?

标签: ios xamarin.ios


【解决方案1】:

“我正在使用现代 HTTP 客户端建立 Web 连接以使用本机 API。”

这可能是您的问题的原因。这是几年前的真实情况。然而,Xamarin HttpClient 已经使用原生 API(您可以在项目属性中设置),而现代 HTTP 客户端多年未更新,现在可能存在一些问题。

【讨论】:

  • 是的,我知道该项目具有使用本机客户端的属性。我已经设置了它,但不确定 httpclient 是否覆盖了它的任何内容。我会试试看。
【解决方案2】:

连接总是失败还是有时失败?如果是后者,那么底部可能会有所帮助。

我不确定是否是这种情况,可能值得检查。但是,我们在一些蜂窝提供商上也遇到了类似的问题。发生的事情是 SIM 卡没有更多数据(达到限制),因此提供商最初会允许连接,但会在中间切断。这将显示为 SSL 错误。

在我们的例子中,我们对此无能为力,因为它是 Cellular Provider 的特定实现。

【讨论】:

  • 至少对我来说不是这样。
猜你喜欢
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多