Мой код для рукопожатия ssl не работает, так как я обновил xcode до 6.4 (и симулятор до ios 8.4).
Ошибка: CFNetwork SSLHandshake failed (-9850)
Тот же код успешно выполняет рукопожатие ssl на симуляторе ios 8.3 (я также пробовал симулятор ios 8.3 из xcode 6.4, и он хорошо рукопожатие).
Вот фрагмент кода, который конфигурирует и запускает рукопожатие. Я использую свифт.
self.socket.startTLS([kCFStreamSSLLevel:kCFStreamSocketSecurityLevelTLSv1,
kCFStreamSSLValidatesCertificateChain:kCFBooleanFalse])
Я пытался понять это целый день, и я даже не мог узнать, что означает код ошибки -9850. Он не указан вместе со всеми другими кодами в файле SecureTransport.h.
Обновление1:
Я узнал, что Apple ввела безопасность транспорта приложений, что означает, что вы можете объявлять домены, к которым хотите установить безопасное соединение. Во всяком случае, я пробовал с ATS, но безуспешно. Ошибка -9850 все еще создает проблемы.
Обновление 2 — Решение
Как предположили Михал и Стивен в своих ответах, я начал подозревать, что основная проблема находится на стороне сервера, что в конечном итоге оказалось правдой.
Я поговорил с парнем, который внедрил сервер, и все проблемы ушли после того, как он сгенерировал новые ssl-сертификаты длиной 2048. До этого они были 512.
С новыми сертификатами код на моей стороне работает отлично.