我使用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
您不应在应用包中包含密钥,只需要证书.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。