Поскольку я обновил свой существующий проект до iOS 9, я продолжаю получать сообщение об ошибке:
Произошла ошибка SSL, и невозможно установить безопасное соединение с сервером.
Поскольку я обновил свой существующий проект до iOS 9, я продолжаю получать сообщение об ошибке:
Произошла ошибка SSL, и невозможно установить безопасное соединение с сервером.
Ответы:
Что касается iOS9, Apple приняла радикальное решение с iOS 9, отключив весь незащищенный HTTP-трафик из приложений iOS в рамках App Transport Security (ATS) .
Чтобы просто отключить ATS, вы можете выполнить следующие действия, открыв Info.plist и добавив следующие строки:
источник
Несмотря на то, что разрешение произвольной load (
NSAllowsArbitraryLoads = true
) является хорошим решением, вам не следует полностью отключать ATS, а лучше включить HTTP-соединение, которое вы хотите разрешить:источник
iOS 9 принудительно устанавливает соединения, использующие HTTPS, на TLS 1.2, чтобы избежать недавних уязвимостей. В iOS 8 поддерживались даже незашифрованные HTTP-соединения, так что старые версии TLS тоже не вызывали проблем. В качестве обходного пути вы можете добавить этот фрагмент кода в свой Info.plist:
* ссылается на безопасность транспорта приложений (ATS)
источник
Если вы просто ориентируетесь на определенные домены, вы можете попробовать добавить это в Info.plist своего приложения:
источник
Похоже, что iOS 9.0.2 прерывает запросы к действительным конечным точкам HTTPS. Мое текущее подозрение заключается в том, что для этого требуются сертификаты SHA-256, или он не работает с этой ошибкой.
Для воспроизведения проверьте свой UIWebView с помощью safari и попробуйте перейти к произвольной конечной точке HTTPS:
Теперь попробуйте зайти в Google (потому что, конечно, у них есть сертификат SHA-256):
Добавление исключения для безопасности транспорта (как указано в ответе @stéphane-bruckert выше) помогает исправить это. Я также предполагаю, что полное отключение
NSAppTransportSecurity
тоже сработает, хотя я читал, что полное отключение может поставить под угрозу обзор вашего приложения.[EDIT] Я обнаружил, что простое перечисление доменов, к которым я подключаюсь, в
NSExceptionDomains
dict устраняет эту проблему, даже если оставитьNSExceptionAllowsInsecureHTTPLoads
значение true. : \источник
Проблема заключается в сертификате ssl на стороне сервера. Либо что-то мешает, либо сертификат не соответствует службе. Например, когда у сайта есть сертификат ssl для www.mydomain.com, а используемая вами служба работает на myservice.mydomain.com. Это другая машина.
источник
Я получаю ту же ошибку, когда указываю свой URL HTTPS как: https://www.mywebsite.com . Однако он отлично работает, когда я указываю его без трех W как: https://mywebsite.com .
источник
Проект Xcode -> goto info.plist и нажмите + кнопку, затем добавьте (настройки безопасности транспорта приложения) разверните, разрешите произвольные нагрузки, установите ДА. Спасибо
источник
Моя проблема заключалась в
NSURLConnection
том, что она устарела в iOS9, поэтому я изменил весь API на,NSURLSession
и это устранило мою проблему.NSURLConnection устарел в iOS9
источник
В моем случае я столкнулся с этой проблемой в своем симуляторе, потому что дата моего компьютера отставала от текущей даты. Так что проверяйте и этот случай, когда сталкиваетесь с ошибкой SSL.
источник
Я получал ошибку ниже при воспроизведении
Я убедился, что добавил запись в домены исключений в файл plist, а для NSAllowsArbitraryLoads установлено значение true, но я все еще видел ошибку.
Потом я понял, что проигрываю URL с https, а не с http.
Я установил URL-адрес видео на http, и проблема решена.
источник
Я получал эту ошибку для некоторых сетевых вызовов, а не для других. Я был подключен к общедоступному Wi-Fi. Этот бесплатный Wi-Fi, похоже, подделал определенные URL-адреса и, следовательно, ошибку.
Когда я подключился к LTE, эта ошибка исчезла!
источник