AFNetworking SSL固定无法正常工作

时间:2017-05-26 12:48:52

标签: ios objective-c ssl afnetworking-3

我试图在我的应用中制作SSL固定。在所有指南之后我得到了这个:

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”是AFHTTPSessionManager的子类。

我在两台服务器上测试了这个。 第一个服务器有my.cer,当我发出请求时,调用URLSession:didReceiveChallenge:completionHandler的方法AFURLSessionManager。然后证书比较,一切都没问题。

第二台服务器没有my.cer。当我发出URLSession:didReceiveChallenge:completionHandler AFURLSessionManager的请求时,不会进行调用,并且不会进行检查,但我可以发出请求并获得响应。

如果我没有从服务器收到证书,有没有办法取消请求?

谢谢!

1 个答案:

答案 0 :(得分:0)

在搜索至少一些信息的过程中,我遇到了一个讨论,发现我的info.plist中的NSAllowsArbitraryLoads位导致了它。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

删除这对我有帮助。 希望,这将有助于其他任何人。