簡體   English   中英

AFNetworking https自簽名證書

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM