подключиться к серверу SSL Windows через приложение iOS с помощью alamofire - PullRequest
0 голосов
/ 10 сентября 2018

На моем сервере я реализовал сертификат 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_PROTOCOL//com/l / handshake_client.c: 970: [BoringSSL] Функция boringssl_context_get_os_status: строка 4304 SSL_AD_PROTOCOL_VERSION

Ошибка TIC TCP Conn [1: 0x6000001708c0]: 3: -9802 Ошибка (-9802) Ошибка загрузки HTTP NSURLSession / NSURLConnection (kCFStreamErrorDomainSSL, -9802) Задача <76674C26-EED0-41DE-BB94-A0FF9F8F22A0>. <1> Ошибка загрузки HTTP (код ошибки: -1200 [3: -9802])

Мой код в swift 4 для соединения с сервером

Alamofire.request ("https://url/token", метод: .post, параметры: параметры, кодировка: JSONEncoding.default, заголовки: [:]). ResponseJSON {ответ в if response.result.isSuccess { печать ( «успех») } еще { print ("Ошибка (строка (описание: response.result.error))") }

Есть ли что-то дополнительное, что нужно сделать для подключения iOS к сети. Я прошел через различные вопросы, уже опубликованные различными пользователями, но у меня ничего не получалось.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

iOS 9.0 или новее имеет встроенную поддержку ATS, которая включена по умолчанию.Alamofire работает с https //, но для этого необходимо определить NSAllowsArbitraryLoads в info.plist, добавив NSAllowsArbitraryLoads = YES

Однако отключение ATS не рекомендуется.

0 голосов
/ 10 сентября 2018

Похоже, проблема с конфигурацией сервера, которая не принимается ATS в iOS. Клиент 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.

...