使用alamofire通过iOS应用与Windows SSL服务器连接

时间:2018-09-10 11:30:31

标签: ios swift alamofire

在我的服务器中,我已经实现了SSL证书,并且仅通过传递URL和参数即可使用改造通过我的android应用程序进行连接。 现在,我正在使用Alamofire开发iOS版本的应用程序,以使用相同的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/Lisary/Caches/Sources/borss/borss/com.apple.x handshake_client.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)  任务<76674C26-EED0-41DE-BB94-A0FF9F8F22A0>。<1> HTTP加载失败(错误代码:-1200 [3:-9802])

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

Alamofire.request(“ https://url/token”,方法:.post,参数:参数,编码:JSONEncoding.default,标头:[:])。responseJSON {response in                     如果response.result.isSuccess {                         打印(“成功”)                     }                     其他{                         打印(“错误(字符串(描述:response.result.error))”)                     }

是否需要执行其他任何操作才能将iOS连接到网络。 我遇到了许多用户已经发布的各种问题,但对我没有任何帮助。

2 个答案:

答案 0 :(得分:0)

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

enter image description here

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

附上相关部分的屏幕截图。enter image description here

主要功能是前向保密性TLS 1.2,所需的对称密码和所需的服务器证书。希望这是您想要的。请让我知道是否。 :)

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

答案 1 :(得分:0)

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

来定义NSAllowsArbitraryLoads

但是不建议禁用ATS。

相关问题