6

मैं शोकहारा सेवा है जो त्रुटि देता हैiphone: सुरक्षित restfull सर्वर इस सर्वर के लिए प्रमाणपत्र अमान्य है "इस सर्वर के लिए प्रमाणपत्र अमान्य

त्रुटि = त्रुटि सुरक्षित डोमेन = NSURLErrorDomain कोड = -1202 का उपभोग करने के कोशिश कर रहा हूँ कि" । आप "xxx.xxx.xxx.xxx" होने का नाटक कर रहे सर्वर से कनेक्ट हो रहे हैं जो आपकी गोपनीय जानकारी को जोखिम में डाल सकता है। "

xCode 4.2 पर काम कर रहा है, गलती या कोई चरण गुम है।

कोड

RegisterUser.f

@interface RegisterUser : UIViewController<UITextFieldDelegate, 
UIScrollViewDelegate, NSURLConnectionDelegate> 

RegisterUser.m

- (IBAction)SubmitBtnAction:(id)sender { 

    NSURL *url = [NSURL URLWithString:@"https://xx.xx.xx.xxx:8223/jaxrs/tunedoorgateway/getCountries"]; 
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url]; 

    [NSURLConnection sendAsynchronousRequest:urlRequest queue:[[NSOperationQueue alloc] init] 
    completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
    { 

     if ([data length] >0 && error == nil) 
     { 
      NSLog(@"Data = %@", data); 
      // DO YOUR WORK HERE 

     } 
     else if ([data length] == 0 && error == nil) 
     { 
      NSLog(@"Nothing was downloaded."); 
     } 
     else if (error != nil){ 
      NSLog(@"Error = %@", error); 
     } 

    }]; 

} 


- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace { 
    NSLog(@"This is canAuthenticateAgainstProtectionSpace"); 
    return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]; 
} 


- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 
{ 
// if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) 
//  if ([trustedHosts containsObject:challenge.protectionSpace.host]) 
      [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; 

    [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge]; 
    NSLog(@"This is didReceiveAuthenticationChallenge"); 
    // [[challenge sender] cancelAuthenticationChallenge:challenge]; 
} 
निम्नलिखित का उपयोग कर
+1

मैं अपने डिवाइस के लिए उचित तिथि और समय निर्धारित करके इसे हल कर दूंगा। – Hemang

+0

स्वचालित रूप से डिवाइस की दिनांक और समय को सेट करने के साथ ही एक ही समस्या हल करें। –

उत्तर

13

मुझे लगता है कि यह DNS की वजह से हो सकता है। आपके सर्वर की तरह कुछ पंजीकृत नहीं है या कुछ।

विकास के purpose- के लिए इस का उपयोग कर प्रयास

संपादित करें:

एक "NSURLRequest + NSURLRequestSSLY.h" फ़ाइल बनाएँ और करने के लिए इसे

#import <Foundation/Foundation.h> 

@interface NSURLRequest (NSURLRequestSSLY) 
+(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; 

@end 

इन लाइनों को जोड़ने बनाएँ "NSURLRequest + NSURLRequestSSLY .m "फ़ाइल और इन पंक्तियों को

#import "NSURLRequest+NSURLRequestSSLY.h" 

@implementation NSURLRequest (NSURLRequestSSLY) 
+(BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host 
{ 
    return YES; 
} 

@end 

और इसके लिए न करें इसे हटाने के लिए प्राप्त करें क्योंकि आपका ऐप अस्वीकार हो सकता है।

+0

#import "NSURLRequest + NSURLRequestSSLY.h" फ़ाइल त्रुटि नहीं मिली है? – Azhar

+0

ने अभी उत्तर संपादित किया है। –

+1

मेरे लिए ठीक काम करता है। – aroth

8

विफलता आपके कोड में नहीं है। आप HTTPS सर्वर का उपयोग कर रहे हैं जो एक ज्ञात प्रमाणपत्र प्रदान नहीं करता है। यदि आपने सर्वर को स्वयं सेटअप किया है तो आपको आईओएस और अन्य ऑपरेटिंग सिस्टम द्वारा भरोसा किए जाने वाले बड़े प्रमाणीकरण प्राधिकरणों में से एक से एक गाना प्रमाण पत्र जाना होगा।

विकास उद्देश्यों के लिए आप गैर-विश्वसनीय प्रमाणपत्र को अनदेखा करके अपनी आरईएसटी सेवा का परीक्षण कर सकते हैं। ऐसा करने के लिए इस गाइड का पालन करें: http://www.cocoanetics.com/2009/11/ignoring-certificate-errors-on-nsurlrequest/

लेकिन उत्पादन के उपयोग के लिए मैं आपको सलाह देता हूं कि आप इस विधि का उपयोग न करें क्योंकि यह आपके आवेदन में सुरक्षा रिसाव लाएगा। यदि आप सुरक्षा को अनदेखा करते हैं तो आप HTTPS के बजाय HTTP का उपयोग भी कर सकते हैं।

+0

यह अधिक बेहतर है .. –

+0

लेकिन यह निजी एपीआई का उपयोग कर रहा है और इसके कारण आवेदन अस्वीकार कर सकता है, क्या आप कुछ सार्वजनिक एपीआई के साथ मदद कर सकते हैं, जैसे मैंने उपयोग किया था, लेकिन इसे हल करने में समस्याएं हैं – Azhar

+0

ASIHttpRequest में एक साधारण BOOL है संपत्ति जो प्रमाणीकरण सत्यापन अक्षम करता है। हो सकता है कि आप प्रोजेक्ट के स्रोत पर नज़र डालें या NSRLRequest के बजाय केवल ASIHttpRequest का उपयोग करें। – miho

0

मैंने कई तरीकों से प्रयास किया है और पता चला है कि यह सेब डेवलपर सेंटर प्रमाणपत्र से संबंधित है। अपनी प्रावधान को अपग्रेड करें और इसे फिर से प्रयास करें। मैंने आईपैड, आईफोन 5 और 5 एस के साथ डेटा पोस्ट करने का प्रयास किया है, लेकिन आईफोन 4. जब मैंने अपने आईफोन 4 पर अपना प्रावधान और इंस्टॉलेशन अपडेट किया है, तो अब समस्या के साथ काम करता है।

संबंधित मुद्दे