2015-05-13 2 views
4

У меня есть корневой сертификат, который используется для подписи с разными поддоменными именами на сервере, который представляет собой в основном реализацию SNI в бэкэнд. Теперь как я могу использовать этот сертификат и поддоменное имя для проверки запроса.Поддержка SNI в AFNetworking

ответ

2

SNI поддерживается из коробки. И из моего опыта работы (два домена второго уровня на одном IP)

Я вижу 3 причины, если она не работает для вас:

  1. Вашего бэкенд не настроен должным образом. Вы можете проверить, возвращает ли сервер ожидаемый сертификат с Safari.
  2. Ваш сертификат самоподписан. В этом случае вы должны проверить AFSecurityPolicy для закрепленных сертификатов, нет ничего особенного в SNI.
  3. Ваш сертификат недействителен для поддоменов. Это также можно проверить с помощью AFSecurityPolicy.
+0

Я подтвердил, что мой бэкэнд настроен должным образом, так как тот же сертификат с именем хоста работает над вызовом Android Webservice. сертификат действителен для имени домена и для проверки поддомена мы определяем имя хоста. Также верно прикрепите сертификат. вы знаете, как это можно достичь в iOS. –

+0

Если вы используете фиксацию сертификата, я бы начал с точки останова в AFSecurityPolicy.evaluateServerTrust, где вы можете проверить многие аспекты установления соединения: если проверка сертификата началась вообще; сертификат, полученный клиентом; какой шаг метода возвращает NO. И кстати, какую ошибку вы сейчас получаете? –

+0

Ваш третий пункт, как это можно проверить с помощью AFSecurityPolicy? –

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