[英]AFNetworking https self signed certificate
我在服務器上進行了自簽名證書驗證。 當我嘗試在Mac上的瀏覽器中使用api https://wikiroutes.info/test/api/ios/getCities時,僅當我接受.p12證書時,它才能工作。 我在AFNetworking中找不到可以輸入.p12密碼的位置。 我也有文件.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);
}];
它是我的測試項目。 https://www.dropbox.com/s/410w5bau3e3slx9/testApp.zip
其證書文件
https://www.dropbox.com/s/hk9hywri37wxpet/cert.pem.der https://www.dropbox.com/s/2cpfhokh59jo15d/cert.p12 (密碼-nM123456)
據我所知,AFNetworking會自動搜索擴展名為“ .cer”的DER格式的證書,因此您需要像這樣轉換PEM證書:
openssl x509 -in cert.pem -outform der -out cert.cer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.