2013-11-25 2 views
2

Я использую AFNetworking 2.0, и я включил проверку подлинности на сервере Apache. Я разместил файл .crt в проекте xcode. и всякий раз, когда я пытаюсь установить соединение по протоколу HTTPS к серверу я получаю следующее сообщение об ошибке:Подключить приложение iOS к серверу Apache с помощью SSL-сертификата?

The operation couldn't be completed. (NSURLErrorDomain error -1012.) 

Вот код для вызова сервера:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
[manager setSecurityPolicy:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]]; 
[manager POST:@"https://www.example.com/" parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    //success 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    //failure 
}]; 
+0

Какой сертификат это? – rdodev

+0

это самоподписанный сертификат SSL – Carpsen90

+0

Это ваша проблема. iOS очень разборчив с аутентификацией сертификата. Вам нужен полностью законный сертификат от CA (вы можете получить его для бесплатной пробной версии). – rdodev

ответ

0

По умолчанию AFNetworking только штыри против .cer файлов ,

Переименуйте свой сертификат так, чтобы он был .cer, а не .crt, и он должен работать.

Вы можете увидеть, если он работает, глядя на возлагали сертификаты:

NSLog(@"Using %d pinned certificates", [manager.securityPolicy.pinnedCertificates count]); 
Смежные вопросы