Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios AFHTTPS自签名证书_Ios_Iphone_Objective C_Afnetworking - Fatal编程技术网

Ios AFHTTPS自签名证书

Ios AFHTTPS自签名证书,ios,iphone,objective-c,afnetworking,Ios,Iphone,Objective C,Afnetworking,我在服务器上进行了自签名证书验证。 当我尝试在mac上的浏览器中使用api时,它只有在我接受.p12证书时才起作用。我找不到可以在AFNetworking中为.p12输入密码的位置。我还有file.der,但当我使用它时,在代码SecTrustEvaluate(allowedTrust,&result)上出现了错误kSecTrustResultRecoverableTrustFailure 我的代码 NSString* fileRoot = [[NSBundle mainBundle] path

我在服务器上进行了自签名证书验证。 当我尝试在mac上的浏览器中使用api时,它只有在我接受.p12证书时才起作用。我找不到可以在AFNetworking中为.p12输入密码的位置。我还有file.der,但当我使用它时,在代码
SecTrustEvaluate(allowedTrust,&result)
上出现了错误
kSecTrustResultRecoverableTrustFailure

我的代码

NSString* fileRoot = [[NSBundle mainBundle] pathForResource:@"cert.pem" ofType:@"der"];
NSData *certData = [[NSData alloc] initWithContentsOfFile:fileRoot];

AFSecurityPolicy *securityPolicy = [[AFSecurityPolicy alloc] init];
securityPolicy.SSLPinningMode = AFSSLPinningModeCertificate;
[securityPolicy setAllowInvalidCertificates:YES];
securityPolicy.pinnedCertificates = @[certData];

AFHTTPRequestOperationManager *operationManager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"https://wikiroutes.info"]];
operationManager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
operationManager.securityPolicy = securityPolicy;

[operationManager GET:@"test/api/ios/getCities" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"response %@",responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"error %@",error);
}];
这是我的测试项目

它的证书文件


(密码-nM123456)

据我所知,AFNetworking会自动搜索扩展名为“.cer”的DER格式的证书,因此您需要像这样转换PEM证书:

openssl x509 -in cert.pem -outform der -out cert.cer