Закрепление SSL с помощью AFNetworking 3 в Objective C?

Я пытаюсь добиться закрепления SSL с помощью библиотеки AFNetworking 3.

Я просмотрел документацию AFSecurityPolicy, но не получил никакой информации о закреплении ssl с помощью AFSSLPinningModePublicKey. Вот фрагмент кода, который я использую

AFHTTPSessionManager * manager = [[AFHTTPSessionManager alloc] initWithBaseURL:[NSURL URLWithString:url]];


AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
sessionManager.securityPolicy = securityPolicy;
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"my-certificate" ofType:@"cer"];
NSData *certData = [NSData dataWithContentsOfFile:cerPath];
sessionManager.securityPolicy.pinnedCertificates = @[certData];

Вывод:

Я вижу, что сертификат извлекается из пакета во время работы в режиме отладки, но затем

Я получаю ошибку как:

Ошибка: Домен ошибки = Код NSURLErrorDomain = -999 "отменено"

Расследование:

  1. validateCertificateChain : параметр больше не существует для версий 3+ в AFNetworking . Означает ли это, что мне придется закреплять все сертификаты моей цепочки сертификатов?

Возможно, я неправильно создаю свои сертификаты (.cer). Не могли бы вы сообщить мне, как извлечь .cer из URL-адреса?

Я использовал следующие команды в своем терминале Mac

echo "Get HTTP/1.0" | openssl s_client -showcerts -connect www.xxxx.xx:443 > mycertificateinpem.pem

openssl x509 -inform PEM -in mycertificateinpem.pem -outform DER -out my-certificate.cer

person devtorasia    schedule 09.04.2018    source источник


Ответы (1)


Мы смогли решить проблему. Я делал двойные экземпляры политики afsecurity. Вот почему один экземпляр переопределял другой.

Обратите внимание: AFNetworking 3.0 можно использовать для закрепления промежуточного сертификата. Он не проверяет всю цепочку. :)

person devtorasia    schedule 09.04.2018
comment
Я получаю тот же код ошибки (-999), но сомневаюсь, что делаю два экземпляра. Как я могу проверить два экземпляра AFNetworking? - person Santosh Singh; 26.10.2018