Как отправить запросы HTTPS на хост с ненадежным сертификатом сервера в iPhone Simulator? - PullRequest
6 голосов
/ 12 января 2010

Я разрабатываю платформу iPhone, которая отправляет HTTPS-запросы для связи с общедоступным внутренним сервером. В настоящее время у меня большая проблема с сертификатами ненадежного сервера.

Сертификат внутреннего сервера не подписан доверенным центром сертификации, поэтому мой первый подход состоял в том, чтобы использовать закрытое свойство NSURLRequest allowAnyHTTPSCertificateForHost. Несмотря на то, что это сработало, как ожидалось, и в качестве временного решения проблемы, наш клиент требует чистого решения в качестве конечного результата. Поэтому я написал метод, который позволяет установить предоставленный сертификат из файловой системы в цепочку для ключей, но этот метод не работает, как ожидалось в iPhone Simulator. Сертификат вместо этого устанавливается в цепочку ключей Mac OS X на главном компьютере. К сожалению, если я вызываю метод sendSynchronousRequest от NSURLConnection, я получаю ошибку «сертификат недоверенного сервера». Кажется, что NSURLConnection не может получить доступ к цепочке ключей Mac OS X хоста для получения сертификата.

Правильно ли мое предположение или я что-то упустил?

Сработал бы мой подход, если бы я запустил свое приложение на реальном устройстве iPhone (у меня его еще нет)?

Существует ли вообще брелок в симуляторе iPhone?

Можно ли вообще отправлять запросы HTTPS на сервер с ненадежным сертификатом на симуляторе iPhone или мне нужно использовать директивы прекомпилятора для реализации различных подпрограмм в зависимости от базовой платформы (симулятора или устройства, соответственно)?

Любая помощь высоко ценится.

Спасибо, Matthias

Ответы [ 3 ]

1 голос
/ 28 января 2010

Вы можете получить бесплатные доверенные сертификаты SSL на http://startssl.com

0 голосов
/ 21 мая 2014

Да, согласен с Бит Болли, но я сделал это по запросу NSURL. Может быть, вы пропускаете время от времени.

0 голосов
/ 28 января 2010

Может быть, библиотека ASIHTTPRequest может помочь с этим?

...