2015-01-05 2 views
1

Я пытаюсь HTTP POST к серверу с помощью Alamofire (Swift в библиотеку для работы в сети, https://github.com/Alamofire/Alamofire), и я получаю следующее сообщение об ошибке при выполнении POST HTTP:CFNetwork SSLHandshake не удалось (-9805) в прошивкой 8,1

2015-01-05 19:37:07.137 PIPiOS[1021:26574] CFNetwork SSLHandshake failed (-9805) 2015-01-05 19:37:07.540 PIPiOS[1021:26574] CFNetwork SSLHandshake failed (-9805) 2015-01-05 19:37:07.942 PIPiOS[1021:26574] CFNetwork SSLHandshake failed (-9805) 2015-01-05 19:37:07.943 PIPiOS[1021:26574] NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9805) <NSMutableURLRequest: 0x7f99425177c0> { URL: https://kmis.brookes.ac.uk/csms/w_secure.login } nil Optional(Error Domain=NSURLErrorDomain Code=-1200 "The operation couldn’t be completed. (NSURLErrorDomain error -1200.)" UserInfo=0x7f9944859110 {NSErrorFailingURLStringKey=https://kmis.brookes.ac.uk/csms/w_secure.login, NSErrorFailingURLKey=https://kmis.brookes.ac.uk/csms/w_secure.login, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9805, NSUnderlyingError=0x7f994259f3c0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1200.)"}) 2015-01-05 19:38:25.115 Oxford Brookes[1021:27197] Terminating since there is no system app.

Я ранее пользовался библиотекой SwiftHTTP и получал ту же ошибку. HTTP POST отлично работает через Java и PHP, поэтому я знаю, что на сервере нет ничего плохого. Любая идея, почему это происходит?

PS: Я тестирование на IOS Simulator таргетинга прошивки 8.1, да и я проверил дату/время, и это прекрасно

+0

Для поиска людей, вот список кодов ошибок, относящихся к ssl handshake: http://www.opensource.apple.com/source/libsecurity_ssl/libsecurity_ssl-32463/lib /SecureTransport.h – eremzeit

ответ

1

Сервер имеет сломанную конфигурацию. Он не поддерживает общее и самое совместимое квитирование SSLv23, но поддерживает только точные рукопожатия TLSv1 и SSLv3. Браузер работает над такими проблемами, пытаясь использовать разные рукопожатия, но другое приложение не делает таких обходных решений. Вы можете посмотреть SSLLabs, чтобы узнать, насколько сильно этот сервер настроен.

Я не разработчик Apple, но из документации, я думаю, вам нужно играть с SSLSetProtocolVersion *, чтобы обеспечить подключение TLS1.0 или SSL3.0.

0

Попытайтесь избежать политики безопасности SSL. Проверьте свой API-интерфейс Framework, чтобы найти это свойство. Как я нашел во время работы в AFnetworking.

manager.securityPolicy.allowInvalidCertificates = YES; 

Надеюсь, это поможет.

Также вы можете попробовать таким образом нормально, когда я CFNetwork SSLHandshake не удалось - (*) Его из-за моей локальной сети Wi-Fi (устройство подключено к сети, но не интернет)

Попробуйте еще раз на другой network (3G - самое быстрое решение для меня)

Смежные вопросы