HTTPS с самозаверяющим сертификатом в связке ключей приложения - PullRequest
3 голосов
/ 13 января 2010

Мне нужно подключить приложение для iPhone к серверу с самозаверяющим сертификатом через HTTPS. Я не могу изменить сертификат или сервер.

Поскольку я не хочу принимать все самозаверяющие сертификаты, только этот, моя идея заключалась в том, чтобы импортировать сертификат в цепочку ключей приложений (считывая сертификат из файла и добавляя его в цепочку ключей с помощью SecItemAdd).

Если я запускаю приложение в симуляторе, устанавливаю сертификат и затем ищу его в цепочке для ключей (используя SecItemCopyMatching), сертификат найден, но соединение все еще не удается с «сертификатом ненадежного сервера» ошибка.

Это проблема с симулятором или моим приложением? Должен ли я сделать что-нибудь еще, чтобы это работало? Или я могу предположить, что если я добавлю сертификат в цепочку для ключей на реальном устройстве, соединение с сервером будет успешным (я использую NSURLConnection.sendSynchronousRequest)?

Спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 13 января 2010

Вы можете использовать библиотеку ASIHTTPRequest . Это позволяет игнорировать проверку сертификата, устанавливая validatesSecureCertificate свойство объекта ASIHTTPRequest в NO.

1 голос
/ 23 марта 2011

Это должно работать в симуляторе с некоторыми оговорками, см. Пример кода Apple «AdvancedURLConnections».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...