versiones ultimo ultima espaƱol cual apple actualizar actualizaciones actualizacion ios objective-c ssl nsurlsession ios9

ios - ultimo - iphone 4s ultima actualizacion



Error de iOS 9 ATS SSL con el servidor de soporte (5)

Apple ha lanzado la lista completa de requisitos para la Seguridad de transporte de aplicaciones .

Resultó que estábamos trabajando con TLS v1.2 pero faltaban algunos de los otros requisitos.

Aquí está la lista de verificación completa:

  1. TLS requiere al menos la versión 1.2.
  2. Los cifrados de conexión están limitados a aquellos que brindan secreto hacia adelante (consulte a continuación la lista de cifrados).
  3. El servicio requiere un certificado que use al menos una huella dactilar SHA256 con una clave RSA de 2048 bits o superior, o una clave de curva elíptica (ECC) de 256 bits o más.
  4. Los certificados no válidos dan como resultado un error de hardware y ninguna conexión.

Los cifrados aceptados son:

TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

Instalé Xcode 7 y traté de ejecutar mi aplicación en iOS 9. Recibo el infame error: Connection failed! Error - -1200 An SSL error has occurred and a secure connection to the server cannot be made. Connection failed! Error - -1200 An SSL error has occurred and a secure connection to the server cannot be made. La cosa es que mi servidor SÍ soporta TLSv1.2 y estoy usando NSURLSession .

¿Cuál podría ser el problema entonces?


Con iOS9, tuve un mismo problema: aunque el resultado de SSLlab no mostró problemas con los protocolos / cifrados en mi servidor, falló la conexión a una URL específica en un iPad con iOS / 9.3.5 con un error de SSL:

Connection cannot be established.

Mi error estúpido fue que tuve una redirección, es decir, en NGINX (y similar en Apache):

rewrite /calendar $scheme://www.example.org/resources/calendar;

Si el usuario accedió /calender mediante la configuración:

https://example.org/calendar

el servidor redirigido a otro dominio rompiendo el establecimiento de la conexión SSL.

Configurando la redirección de la siguiente manera lo arreglé:

rewrite /calendar $scheme://$server_name/resources/calendar;


Echa un vistazo a este documento que Apple proporcionó.

Tuve un problema similar en el tiempo de ejecución en iOS 9 y lo que hice para solucionarlo fue agregar el NSAppTransportSecurity Dictionary a mi archivo info.plist con el NSAllowsArbitraryLoads Bool configurado a true y después de limpiarlo y reconstruirlo funcionó.

¡Espero que esto ayude!


En iOS9, Apple agregó una nueva característica llamada App Transport Security (ATS).

ATS aplica las mejores prácticas durante las llamadas de red, incluido el uso de HTTPS.

Documentación de prelanzamiento de Apple:

ATS evita la divulgación accidental, proporciona un comportamiento predeterminado seguro y es fácil de adoptar. Debe adoptar ATS lo antes posible, independientemente de si está creando una nueva aplicación o actualizando una existente.

Si está desarrollando una nueva aplicación, debe usar HTTPS exclusivamente. Si tiene una aplicación existente, debe usar HTTPS todo lo que pueda en este momento y crear un plan para migrar el resto de su aplicación lo antes posible.

Agregue la tecla Abajo en su info.plist y luego vea.

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

Incluso puedes agregar una excepción específica,

<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>testdomain.com</key> <dict> <key>NSIncludesSubdomains</key> <false/> <key>NSExceptionAllowInsecureHTTPSLoads</key> <false/> <key>NSExceptionRequiresForwardSecrecy</key> <true/> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.2</string> <key>NSThirdPartyExceptionAllowInsecureHTTPSLoads</key> <false/> <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> <true/> <key>NSThirdPartyExceptionMinimumTLSVersion</key> <string>TLSv1.2</string> <key>NSRequiresCertificateTransparency</key> <false/> </dict> ... </dict> </dict>


Para mí, el proxy estaba bloqueando el intento de usar Internet de otra fuente para resolver el problema. Wifi, lan, etc.