verificar verificacion recuperar puedo olvide numero llega enviaron demasiados como codigos codigo bloqueado apple activar ios4 ssl certificate security-framework

ios4 - verificacion - Continuamente obteniendo kSecTrustResultRecoverableTrustFailure mientras se evalĂșa la confianza-iphone



olvide mi id de apple y no puedo activar mi iphone (1)

Quiero comunicarme con seguridad con mi servidor y esto es lo que estoy haciendo ...

NSURLProtectionSpace *protectionSpace = [challenge protectionSpace]; SecTrustRef trust = [protectionSpace serverTrust]; NSURLCredential *credential = [NSURLCredential credentialForTrust:trust]; SecPolicyRef myPolicy = SecPolicyCreateBasicX509(); NSArray * certs = [[NSArray alloc] initWithObjects:(id)certificate,nil]; //certificate is my server''s cert. credential = [NSURLCredential credentialForTrust:trust]; SecTrustSetAnchorCertificates(trust, (CFArrayRef) [NSArray arrayWithObject:(id) certificate ]); OSStatus status = SecTrustCreateWithCertificates(certs, myPolicy, &trust); SecTrustResultType trustResult = 0; if (status == noErr) { status = SecTrustEvaluate(trust, &trustResult); } NSLog(@"Trust I get: %d", trustResult); [certs release]; if (trustResult == kSecTrustResultRecoverableTrustFailure) { NSLog(@"Recoverable Failure"); CFAbsoluteTime trustTime,currentTime,timeIncrement,newTime; CFDateRef newDate; trustTime = SecTrustGetVerifyTime(trust); timeIncrement = 31536000; currentTime = CFAbsoluteTimeGetCurrent(); newTime = currentTime - timeIncrement; if (trustTime - newTime){ newDate = CFDateCreate(NULL, newTime); SecTrustSetVerifyDate(trust, newDate); status = SecTrustEvaluate(trust, &trustResult); } NSLog(@"Trust again:%d", trustResult);// AGAIN kSecTrustResultRecoverableTrustFailure(5) over here }

Alguien tiene idea de por qué está sucediendo ... Parece que no se trata de la expiración del certificado (que tampoco es real) pero podría ser el motivo.

gracias

Alabama


SecTrustResultRecoverableTrustFailure sucede si

  • el certificado es md5 hash (IOS5)
  • el servidor no presenta los certificados raíz e intermedios
  • se establece el SecTrustSetAnchorCertificatesOnly (confianza, SÍ) y el certificado de anclaje está solo en los certificados de anclaje incorporados
  • el certificado ha expirado
  • ?

Resolví mi problema configurando el servidor web para enviar toda la cadena de certificados en lugar de solo el certificado del servidor.

Al configurar mi apache mod_ssl: https://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslcertificatechainfile