1

Ich verwende AFnetworking. Mein Anwendungsserver befindet sich in TLS 1.2. Ich möchte die Zertifikatsfixierung meiner iOS App hinzufügen. Mein Code wie folgt:SSL Pinning mit AFNetworking in iOS funktioniert nicht

 AFHTTPSessionManager *manager=[[AFHTTPSessionManager manager] initWithBaseURL:serviceURL]; 

    NSSet *certificates = [AFSecurityPolicy certificatesInBundle:[NSBundle mainBundle]]; 
    AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate withPinnedCertificates:certificates]; 
    policy.validatesDomainName = YES; 
    policy.allowInvalidCertificates = YES; 
    opManager.securityPolicy = policy; 

Ich habe mein gültiges Serverzertifikat in meinem Bündel und mit diesem Code webservices fein arbeiten. Aber als ich das gleiche mit einem falschen Musterzertifikat probierte, arbeiten zu dieser Zeit auch Webservices. Ich habe es sogar ohne Zertifikate im Bundle versucht, auch Webservices funktionieren gut. Könnte jemand bitte das erklären? AppTransportSecurity ist in meiner App aktiviert.

<key>NSAppTransportSecurity</key> 
<dict> 
    <key>NSAllowsArbitraryLoads</key> 
    <false/> 
</dict> 

Antwort

1

Ich habe eine Lösung für dieses Problem gefunden. Nachfolgend finden Sie den Code, mit dem ich den bestehenden Code ersetzt habe. Es funktioniert wie erwartet.

 AFHTTPSessionManager *opManager=[[AFHTTPSessionManager manager] initWithBaseURL:baseUrl]; 
    opManager.requestSerializer = [AFHTTPRequestSerializer serializer]; 
    opManager.responseSerializer = [AFHTTPResponseSerializer serializer]; 

    // SSL Pinning 
    NSString *certificatePath = [[NSBundle mainBundle] pathForResource:@"xxxxxxxx.com" ofType:@"der"]; 
    NSData *certificateData = [NSData dataWithContentsOfFile:certificatePath]; 

    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate]; 
    [securityPolicy setAllowInvalidCertificates:YES]; 
    [securityPolicy setPinnedCertificates:@[certificateData]]; 
    [opManager setSecurityPolicy:securityPolicy]; 
Verwandte Themen