objective-c – 用于可信证书的AFNetworking pin公钥

我使用AFNetworking 2.3.1,我有一个值得信赖的证书,我想用它来固定公钥.

我有crt,key,pfx文件,所以我想我必须将它们添加到我的包中.

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]
    initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation,id responSEObject) {
    NSLog(@"Success");
} failure:^(AFHTTPRequestOperation *operation,NSError *error) {
    return [self processError:[operation response]];
}];
[operation start];

现在我如何告诉AFNetworking使用AFSSLPinningModePublicKey模式?@H_502_7@(我没有看到AFHTTPRequestOperation的setSSLPinningMode方法)

我如何告诉AFNetworking使用添加的密钥?我在文档中找不到任何示例.

解决方法

AFNetworking有一个AFSecurityPolicy对象具有安全功能的值,包括SSL固定模式.

您可以在AFHTTPRequestOperation上设置securityPolicy

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
operation.securityPolicy = securityPolicy;

您的证书必须具有扩展名cer而不是crt,并且应该是DER格式.将其添加到您的捆绑包中.您可以使用以下命令将其转换为终端中的正确格式:

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

您不应在应用包中包含密钥,只需要证书.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...