В моем приложении я использую https и самоподписанный SSL-сертификат для защиты соединения между моим клиентом и сервером.SSL-соединение с AFNetworking
Я пытался, чтобы библиотека AFNetworking выполняла SSL-шифрование на копии моего сертификата, прилагаемого в приложении.
В заголовке AFURLConnectionOperation
я определил как:
#define _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_ =1
#define _AFNETWORKING_PIN_SSL_CERTIFICATES_ =1
И перед вызовом start
на моем AFJSONRequestOperation
я установил SSLPinningMode
свойство AFSSLPinningModeCertificate
.
Но при попытке выполнить запрос JSON я получаю следующее сообщение об ошибке:
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed.
(NSURLErrorDomain error -1012.)" UserInfo=0x758f120
{NSErrorFailingURLKey=https://mydomain.com,
NSErrorFailingURLStringKey=https://mydomain.com}
AFURLConnectionOperation
В заголовке я прочитал, что SSL Закрепление работает с .CER сертификатов, но в моем самопринятый OS X веб-сервер У меня есть сертификат .crt.
В этом проблема? Есть ли способ заставить AFNetworking работать с .crt?
В окне окна я преобразовал свой .crt в .cer и попытался связать это с моим приложением, но я все равно получаю ту же ошибку. Должен ли я попытаться переключить файл .crt с вновь созданным .cer даже на стороне сервера?
ли вы найти ответ? Хотите поделиться им? – jAckOdE
Я просто отказался от использования 'AFNetworking' и написал класс, который использует стандартную' NSURLConnection' (и выступает в роли делегата для самого соединения), чтобы сделать запрос, и я вручную обработал данные сравнения в '- (void) соединение: NSURLConnection *) соединение будет sendRequestForAuthenticationChallenge: (NSURLAuthenticationChallenge *) вызов' метод, который является частью протокола NSURLConnectionDelegate, если вы хотите взглянуть на код, пожалуйста, не стесняйтесь спрашивать. – BigLex
Я не пробовал это сам. но в проекте выборки AFNetworking. в режиме закрепления SSL устанавливается значение AFSSLPinningModePublicKey, а не AFSSLPinningModeCertificate. Ты это пробовал? – jAckOdE