Используйте самозаверяющий ssl-сертификат в приложении для iphone

Заранее прошу прощения за многословный вопрос. У меня проблемы с самоподписанным сертификатом SSL, и я хочу задокументировать все, что пробовал до сих пор.

Я работаю над приложением, которое взаимодействует со службой REST. Тестовый сервер использует самозаверяющий ssl-сертификат, который я могу без проблем установить на свой компьютер. Это файл .p12, для установки которого требуется пароль. Без установленного сертификата все запросы к серверу возвращают 403.

.p12 устанавливает три элемента в связке ключей: " Я получаю от службы коды ошибок 403.

Теперь я не могу понять, как получить запрос на использование сертификата. Я пробовал экспортировать эти три элемента как отдельный файл .cer, включая их в проект и добавляя их в запрос, используя приведенный ниже код:

NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"cert" ofType:@"cer"]];
SecCertificateRef cert = SecCertificateCreateWithData(NULL, (CFDataRef)data);
...
[self setClientCertificates:[NSArray arrayWithObjects:(id)cert, ..., nil]];

Хотя при использовании этого подхода код выполняется без проблем, я все равно получаю ошибку 403.

Я даже пробовал включить файл .p12 в свое приложение и импортировать его, используя тот же код. Это не удается, потому что SecCertificateCreateWithData возвращает ноль.

Признаюсь, я действительно не знаю, что я здесь делаю. Это все немного выше моей головы, и я буду очень признателен за любую помощь, которую мог бы мне оказать.

34
задан Jose Ibanez 11 May 2011 в 22:37
поделиться