首页 文章

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

提问于
浏览
0

在我的服务器中,我已经实现了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/boringssl-109.50.14/ssl/handshake_client.c:970:[BoringSSL]函数boringssl_context_get_os_status:第4304行SSL_AD_PROTOCOL_VERSION

TIC TCP Conn失败[1:0x6000001708c0]:3:-9802错误(-9802)NSURLSession / NSURLConnection HTTP加载失败(kCFStreamErrorDomainSSL,-9802)任务<76674C26-EED0-41DE-BB94-A0FF9F8F22A0> . <1> HTTP加载失败(错误代码:-1200 [3:-9802])

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

Alamofire.request(“https://url/token ", method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: [:]).responseJSON { response in if response.result.isSuccess{ print(“success”) } else { print ("错误(字符串(描述:response.result.error))”)}

还有什么需要做的连接iOS与网络 . 我已经浏览了各种用户已发布的各种问题,但没有任何对我有用 .

2 回答

  • 0

    似乎是服务器配置的问题,iOS中的ATS不接受该问题 . iOS客户端无法与服务器 Build 握手 . 要检查有效性,请转至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,所需的对称密码和所需的服务器证书 . 希望这是你正在寻找的 . 如果是的话,请告诉我 . :)

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

  • 0

    iOS 9.0或更高版本内置支持默认启用的ATS . Alamofire使用https //但是因为NSAllowsArbitraryLoads需要通过添加NSAllowsArbitraryLoads = YES在info.plist中定义

    但是,不建议禁用ATS .

相关问题