在我的服务器中,我已经实现了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”,方法:.post,参数:参数,编码:JSONEncoding.default,headers:[:])。responseJSON {response in if response.result.isSuccess {print(“success”)} else { print(“Error(String(describe:response.result.error)))”)}
还有什么需要做的连接iOS与网络。我已经浏览了各种用户已发布的各种问题,但没有任何对我有用。
似乎是服务器配置的问题,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。
iOS 9.0或更高版本内置支持默认启用的ATS。 Alamofire使用https //但是因为NSAllowsArbitraryLoads需要通过添加NSAllowsArbitraryLoads = YES在info.plist中定义
但是,不建议禁用ATS。