verificar valido servidor puede mail imposible identidad este confiable certificado ssl https nsurlconnection nsurlrequest

valido - Error de SSL en la conexión al servidor a través de iPhone



iphone mail certificado no confiable (8)

Estoy tratando de establecer una conexión HTTPS a un servidor usando mi aplicación. Pero la conexión falla debido a un error de seguimiento

Error Domain = NSURLErrorDomain Code = -1200 "Se ha producido un error de SSL y no se puede establecer una conexión segura con el servidor." UserInfo = 0x612eb30 {NSErrorFailingURLStringKey = https: myURL.com/signup, NSLocalizedRecoverySuggestion = ¿Desea conectarse al servidor de todos modos ?, NSErrorFailingURLKey = https: myURL.com/signup, NSLocalizedDescription = Se ha producido un error de SSL y una conexión segura al servidor no se puede hacer el servidor., NSUnderlyingError = 0x612eb70 "Se ha producido un error SSL y no se puede establecer una conexión segura con el servidor."}

El código para conectarse al servidor es

-(IBAction) handleEvents:(id)sender { if ((UIButton*)sender == submit) { [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; NSLog(@"Begin"); NSData *urlData; NSURLResponse *response; NSError *error; NSString *url =[[NSString alloc]initWithFormat:@"%@signup",baseURL]; NSURL *theURL =[NSURL URLWithString:url]; NSMutableURLRequest *theRequest =[NSMutableURLRequest requestWithURL:theURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:0.0f]; [theRequest setHTTPMethod:@"POST"]; NSString *theBodyString = [NSString stringWithFormat:@"emailId=%@&mobileNumber=%@&appId=%@&password=%@&firstName=%@&lastName=%@" ,@"[email protected]",@"919879876780",@"bf1c7a6b3d266a7fe350fcfc4dda275211c13c23" ,@"qwerty" , @"Dev" , @"Sri"]; NSData *theBodyData = [theBodyString dataUsingEncoding:NSUTF8StringEncoding]; [theRequest setHTTPBody:theBodyData]; urlData = [NSURLConnection sendSynchronousRequest:theRequest returningResponse:&response error:&error]; } }

mis métodos de delegado son

- (void)handleError:(NSError *)error { NSLog(@"----->%@",error); } - (void)connectionDidFinishLoading:(NSURLConnection *)connection { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; } - (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace { return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]; } - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge (NSURLAuthenticationChallenge *)challenge { NSLog(@"check auth"); [challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge]; }

Estoy atrapado aquí y no pude encontrar ninguna salida.

Cualquier forma de ayuda sería muy apreciada.

¡¡gracias por adelantado!!


Dado que ha quedado sin respuesta durante mucho tiempo y mi investigación y desarrollo actual indican que el código está perfectamente bien para la conexión, es el certificado en el servidor que no fue firmado por una CA autorizada. por lo que cualquiera que tenga ese tipo de problema compruebe que el certificado sea válido al final del servidor o no.

Espero que esto ayude !!


Echa un vistazo a esta página: https://github.com/vinhnx/iOS-issues/issues/1

En pocas palabras: el motivo es que, a partir de iOS9 y OSX 10.11, todas las aplicaciones creadas en XCode7 requerirán TLS 1.2 para la conexión SSL y fallarán para los protocolos anteriores.
Hay varios métodos para superar este problema.
El enfoque "NSAppTransportSecurity -> NSAllowsArbitraryLoads" no es bueno, ya que deshabilitará TLS 1.2 para todas las conexiones desde su aplicación, y esto puede llevar al rechazo de su aplicación por parte de Apple.
El enfoque de "Excepciones por dominio" es mucho mejor.


Estaba usando iOS 9.3.1 y estaba usando https cuando llegué a este problema. Funcionó bien a través del simulador, pero falló en mi iPad. La razón es porque mi iPad tenía WiFi habilitado y se había conectado a la red de invitados de mi empresa, pero no había recibido el sitio web emergente donde acepto ingresar a la red. Después de aceptar todo, todo funcionó bien nuevamente.


Incluso yo estaba enfrentando el mismo problema.

Este problema puede ocurrir si el certificado SSL sobre el servidor es un certificado privado. En tal escenario, puedes resolverlo usando this .


Por favor, asegúrese de que la versión de TLS sea 1.2 , no TLS 1.0 .

Las aplicaciones creadas en XCode8 requerirán TLS 1.2 para la conexión SSL


Pruebe la dirección web con safari desde el teléfono.


Tal vez su dispositivo tiene una fecha y hora incorrectas :)


iOS 9 obliga a las conexiones que usan HTTPS a ser TLS 1.2 para evitar vulnerabilidades recientes. En iOS 8, incluso las conexiones HTTP no encriptadas eran compatibles, por lo que las versiones anteriores de TLS tampoco creaban ningún problema. Como solución alternativa, puede agregar este fragmento de código a su Info.plist:

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>

De este modo, está desactivando la seguridad del transporte de la aplicación. Espero que sea útil.