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模式?
(我没有看到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++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...