Ich versuche, SSL-Pinning in meiner App zu machen. Nach allen Anleitungen habe ich das:AFNetworking SSL-Pinning funktioniert nicht korrekt
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" ist Unterklasse von AFFTTPSessionManager.
Ich habe das auf zwei Servern getestet. Der erste Server hat my.cer, und wenn ich eine Anfrage mache, wird die Methode URLSession:didReceiveChallenge:completionHandler
von AFURLSessionManager
aufgerufen. Dann vergleicht das Zertifikat und alles ist in Ordnung.
Zweiter Server haben kein my.cer. Wenn ich Anfragen mache URLSession:didReceiveChallenge:completionHandler
von AFURLSessionManager
ruft nicht an und testificate Überprüfung geschieht nicht, aber ich kann Anfragen stellen und Antworten erhalten.
Gibt es eine Möglichkeit, eine Anfrage abzubrechen, wenn ich kein Zertifikat vom Server erhalten habe?
Danke!