У меня нет большого опыта по проверке подлинности сертификата клиента.Кто-нибудь может сказать мне, как использовать его в iOS-приложении?Спасибо:)
Ваш NSURLConnection делегат должен ответить на метод connection:didReceiveAuthenticationChallenge: делегата (см. Ссылку ниже).
connection:didReceiveAuthenticationChallenge:
http://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSURLConnection_Class/Reference/Reference.html#//apple_ref/occ/instm/NSObject/connection:didReceiveAuthenticationChallenge:
Он должен ответить, попросив у своего «отправителя» запрос и предоставив ему соответствующие полномочия.
Что-то вроде:
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { id sender = [challenge sender]; // create a credential from a certificate // see doco for details of the parameters NSURLCredential *creds = [NSURLCredential credentialWithIdentity:ident certificates:certs persistence:persistence]; [sender useCredential:creds forAuthenticationChallenge:challenge]; }
См. Ссылку на класс NSURLCredential для получения подробной информации о том, как создать учетные данные на основе сертификата:
Прежде чем использовать клиентские сертификаты в вашем приложении (как уже ответил Джейк), вы должны выполнить импорт сертификата в вашем приложении в связку ключей вашего приложения. (обратите внимание, что вам нужно использовать формат сертификата PKCS # 12, но вам необходимо зарегистрировать его в своем приложении (поиск экспортированных UTI и типов документов) с другим расширением, отличным от «.p12», который уже зарегистрирован в iOS. Я использовал .x-p12 в моем приложении)
Или вам нужно включить сертификат в комплект вашего приложения.
См. Здесь: Сертификаты клиентов iOS и управление мобильными устройствами
и здесь: https://developer.apple.com/library/ios/qa/qa1745/_index.html