使用AFNetworking 2.0进行SSL固定,无论使用何种cert文件,都允许POST请求

 阿宝宝86 发布于 2023-01-01 10:01

我们使用DigiCert作为我们的CA. 我们使用以下命令制作了.cer文件:

openssl x509 -in WEBSITE.crt -outform der -out WEBSITE.cer 

哪个应该可以工作,但问题是这个cer不仅可以工作,而且我们放入代码的任何文件都可以工作.我们甚至测试了空白.cer文件,这也是有效的.通过工作,我的意思是我们能够向服务器发出一个post请求,无论使用什么.cer文件.显然,如果使用除签名证书之外的其他内容,我们希望它失败.

我们的起源设置在Cloudflare,然后路由到安装了我们证书的Amazon负载均衡器.

我自己使用Charles Proxy来MITM,我可以在iOS应用程序中使用或不使用证书.

我们正在使用最新版本AFNetworking来执行SSL固定.我继承AFHTTPRequestOperationManager并添加了以下方法:

+ (AFSecurityPolicy*) siteSecurityPolicy
{
    /**** SSL Pinning ****/
    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"WEBSITE" ofType:@"cer"];
    NSData *certData = [NSData dataWithContentsOfFile:cerPath];
    AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];
    [securityPolicy setAllowInvalidCertificates:NO];
    [securityPolicy setPinnedCertificates:@[certData]];
    [securityPolicy setSSLPinningMode:AFSSLPinningModeCertificate];
   /**** SSL Pinning ****/

    return securityPolicy;
}

我发布的代码如下:

websiteRequestOperationManager *manager = [websiteRequestOperationManager manager];

/**** SSL Pinning ****/
[manager setSecurityPolicy:[websiteRequestOperationManager siteSecurityPolicy]];
/**** SSL Pinning ****/

[manager GET:WEBSITE_URL parameters:params success:^(AFHTTPRequestOperation *operation, NSDictionary* responseObject) {
    //code
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    //code
}];

我们错过了什么关键步骤?

我还要提一下我的NSLog:

[manager.securityPolicy.pinnedCertificates count]

并收到1.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有