AFNetworking SSL 请求

Posted

技术标签:

【中文标题】AFNetworking SSL 请求【英文标题】:AFNetworking SSL Request 【发布时间】:2015-08-25 07:39:00 【问题描述】:

我使用 AF 发送 https 请求,如

    [self.manager POST:downloadURLStirng parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) 
        if (success)
            success(responseObject,passParameters);
     failure:^(AFHTTPRequestOperation *operation, NSError *error) 
        if(failure)
            failure(operation.responseObject,error,passParameters);
    ];

我已经将 securityPolicy 设置为 YES

    self.manager.requestSerializer = [AFJSONRequestSerializer serializer];
self.manager.securityPolicy.allowInvalidCertificates = OPENSSL;

但我仍然收到 code -1012error_message :为了验证自签名证书的域名,您必须使用 pinning。

【问题讨论】:

Problems with SSL Pinning and AFNetworking 2.5.0 (NSURLErrorDomain error -1012.)的可能重复 【参考方案1】:

这是设置安全策略以允许无效证书并停止域名验证。:

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy 
policyWithPinningMode:AFSSLPinningModeNone];
securityPolicy.allowInvalidCertificates = YES;

[securityPolicy setValidatesDomainName:NO];

【讨论】:

【参考方案2】:

我搜索过这一行

'NSLog(@"为了验证自签名证书的域名,您必须使用 pinning。");'

在这条线下面我改变了

'返回NO;' 到

'返回是;'

它发挥了魔力。

谢谢。

【讨论】:

这对我也有用,但如果这是否是一个好方法值得怀疑。先试试看:***.com/questions/27808249/… 宁可分配:[AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone]; 你为什么这样做?它解决了什么问题,又带来了哪些优势?

以上是关于AFNetworking SSL 请求的主要内容,如果未能解决你的问题,请参考以下文章

iOS SSL Pinning 没有使用 AFNetworking 的证书?

iOS超全开源框架项目和学习资料汇总网络和Model篇

使用 iOS 中的 AFNetworking,确定失败响应是服务器错误还是连接错误的最佳方法是啥?

使用 AFNetworking 进行 SSL 证书验证

使用 AFNetworking 1.x 进行 SSL 固定

使用 AFNetworking 进行 SSL 固定 - validatesCertificateChain = true