Je suis en train d'essayer de faire des épinglages SSL dans mon application. Après tous les guides, j'ai obtenu ceci:AFNetworking SSL épinglage ne fonctionne pas correctement
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
policy.allowInvalidCertificates = YES;
NSData *localCertificate = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"my" ofType:@"cer"]];
policy.pinnedCertificates = [[NSSet alloc] initWithObjects:localCertificate, nil];
self.securityPolicy = policy;
"self" est la sous-classe de AFHTTPSessionManager.
J'ai testé cela sur deux serveurs. Le premier serveur a my.cer, et quand je fais une requête, la méthode URLSession:didReceiveChallenge:completionHandler
de AFURLSessionManager
est appelée. Ensuite, les certificats se comparent et tout va bien.
Le second serveur n'a pas my.cer. Quand je fais des demandes URLSession:didReceiveChallenge:completionHandler
de AFURLSessionManager
ne fait pas les appels et le contrôle de certification ne se produit pas, mais je peux faire des demandes et obtenir des réponses.
Existe-t-il un moyen d'annuler une demande si je n'ai pas reçu de certificat du serveur?
Merci!