【问题标题】:connect with Windows SSL server through iOS app using alamofire使用 alamofire 通过 iOS 应用程序连接 Windows SSL 服务器
【发布时间】:2019-02-14 20:01:56
【问题描述】:

在我的服务器中,我实现了 SSL 证书,并通过我的 android 应用程序使用改造连接,只需传递 URL 和参数。 现在我正在开发应用程序的 iOS 版本,使用 Alamofire 连接相同的 API,但出现 SSL 错误。

[BoringSSL] 函数boringssl_session_errorlog:第2866行[boringssl_session_handshake_continue] SSL_ERROR_SSL(1):库内操作失败 [BoringSSL] 函数boringssl_session_handshake_error_print:第2805行boringssl ctx 0x7fcff052b0d0:140531107629232:错误:100000f0:SSL 例程:OPENSSL_internal:UNSUPPORTED_PROTOCOL:/BuildRoot/Library/Caches/com.apple.xbs/Sources/boringssl_Sim/握手客户端.c:970: [BoringSSL] 函数boringssl_context_get_os_status:第4304行SSL_AD_PROTOCOL_VERSION

TIC TCP 连接失败 [1:0x6000001708c0]: 3:-9802 Err(-9802) NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9802) 任务 . HTTP 加载失败(错误代码:-1200 [3:-9802])

我在 swift 4 中连接服务器的代码

Alamofire.request("https://url/token", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: [:]).responseJSON { response in 如果 response.result.isSuccess{ 打印(“成功”) } 别的 { 打印(“错误(字符串(描述:result.result.error))”) }

为了将 iOS 与网络连接,是否需要做任何额外的事情。 我已经解决了各种用户已经发布的各种问题,但对我没有任何帮助。

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

    似乎是 iOS 中的 ATS 不接受的服务器配置问题。 iOS 客户端无法创建与服务器的握手。要检查有效性,请转到https://www.ssllabs.com。添加您的服务器(例如 www.google.com)并运行测试。服务器测试完成后,请检查以下字段。

    如果这个没有显示在图片中(绿色而不是红色),那么应用程序无法连接到服务器。您必须使用正确的 ATS 配置来配置服务器。此链接提供了有关它的更多详细信息。 https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

    附上相关部分截图。

    主要功能是前向保密、TLS 1.2、所需的对称密码和所需的服务器证书。希望这是您正在寻找的。如果是的话,请告诉我。 :)

    注意:检查问题是否正确的一种快速方法是在 iOS 7 模拟器中运行应用程序。它应该可以连接并且不会发生错误,因为 iOS 7 没有 ATS。

    【讨论】:

    • 禁用 ATS,即使我在 .plist 文件中使用了 NSAllowsArbitraryLoads 但没有用。
    • 将您的请求设为 http:// 而不是 https://,然后 NSAllowsArbitraryLoads 将起作用。否则不会。干杯。
    • 我只需要使用https不能使用http。
    【解决方案2】:

    iOS 9.0 或更高版本已内置对默认启用的 ATS 的支持。 Alamofire 与 https// 一起使用,但为此需要在 info.plist 中通过添加 NSAllowsArbitraryLoads=YES 来定义 NSAllowsArbitraryLoads

    但不建议禁用 ATS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-05
      相关资源
      最近更新 更多