4

我想我的iOS應用程序與AFNetwork使用自簽名證書連接到我的網絡服務器。我發現在GitHub上(https://github.com/AFNetworking/AFNetworking/pull/694)一個解決方案,我嘗試過了,並在證書釘扎,似乎工作,但我得到了一個其他錯誤:驗證自簽名證書的機智AFNetworking

Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0x7bc2090 {NSErrorFailingURLKey=(my domain)}

有誰知道這個錯誤是否與AFNetworking框架和自做是否簽署證書?

已解決: 我找到了錯誤的解決方案。我不得不設置SSLPinningMode到AFSSLPinningModeCertificate現在它的工作原理。

AFJSONRequestOperation *operation =[AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
    NSDictionary *resDictionary = (NSDictionary *)JSON; 
} 
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 
    NSLog(@"%@",error); 
}]; 
operation.SSLPinningMode = AFSSLPinningModeCertificate; 
[operation start]; 
+0

你能告訴我們的代碼?這個錯誤是通用的,可能是由很多原因造成的。 – Raptor 2013-04-30 10:01:14

+0

我不使用任何特殊的代碼我只使用標準的JSON響應'AFJSONRequestOperation *操作= [AFJSONRequestOperation JSONRequestOperationWithRequest:請求成功:^(NSURLRequest *請求,NSHTTPURLResponse *響應,ID JSON)'它是工作時,我設置' _AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_」定義爲1 – Weini 2013-04-30 10:07:38

+0

添加代碼有問題你。 – Raptor 2013-04-30 10:16:09

回答

0

試試這個解決方法。

AFJSONRequestOperation *operation =[AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
    NSDictionary *resDictionary = (NSDictionary *)JSON; 
} 
                        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 
                         NSLog(@"%@",error); 
                        }]; 
operation.securityPolicy.allowInvalidCertificates = YES; 
[operation start]; 
+2

允許無效證書是一個可怕的想法!它會阻止這個錯誤,但它也會使應用程序完全不安全。 – bdesham 2013-11-18 00:23:26

+0

我同意的安全層,但沒有一個SSL證書,如果他們使用了SSL證書不能測試某些Web服務。如果沒有其他解決方案如何測試沒有SSL證書的HTTPS Web服務,爲什麼給-1? – 2013-11-18 11:13:54

+0

由於OP對問題的更新狀態,通過設置'operation.SSLPinningMode'可以解決問題。這完全解決了OP所具有的問題,因此不需要像設置「allowInvalidCertificates」這樣的戲劇性解決方案。 – bdesham 2013-11-18 14:43:29