AFNetworking SSL 固定无法正常工作
AFNetworking SSL pinning doesn't work correctly
我正在尝试在我的应用程序中进行 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,当我发出一些请求时,AFURLSessionManager
的方法URLSession:didReceiveChallenge:completionHandler
被调用。然后证书比对,一切正常
第二个服务器没有my.cer。当我发出请求时 URLSession:didReceiveChallenge:completionHandler
of AFURLSessionManager
不会调用并且证书检查不会发生,但我可以发出请求并获得响应。
如果我没有从服务器收到证书,有没有办法取消请求?
谢谢!
在至少搜索一些信息的过程中,我遇到了一个讨论,发现我的 info.plist 中的 NSAllowsArbitraryLoads 位导致了它。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
删除这个对我很有帮助。
希望,这会对其他人有所帮助。
我正在尝试在我的应用程序中进行 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,当我发出一些请求时,AFURLSessionManager
的方法URLSession:didReceiveChallenge:completionHandler
被调用。然后证书比对,一切正常
第二个服务器没有my.cer。当我发出请求时 URLSession:didReceiveChallenge:completionHandler
of AFURLSessionManager
不会调用并且证书检查不会发生,但我可以发出请求并获得响应。
如果我没有从服务器收到证书,有没有办法取消请求?
谢谢!
在至少搜索一些信息的过程中,我遇到了一个讨论,发现我的 info.plist 中的 NSAllowsArbitraryLoads 位导致了它。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
删除这个对我很有帮助。 希望,这会对其他人有所帮助。