Ios AFHTTPS自签名证书
我在服务器上进行了自签名证书验证。 当我尝试在mac上的浏览器中使用api时,它只有在我接受.p12证书时才起作用。我找不到可以在AFNetworking中为.p12输入密码的位置。我还有file.der,但当我使用它时,在代码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
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