Desde que actualicé mi proyecto existente con iOS 9, sigo recibiendo el error:
Se ha producido un error de SSL y no se puede establecer una conexión segura con el servidor.
Desde que actualicé mi proyecto existente con iOS 9, sigo recibiendo el error:
Se ha producido un error de SSL y no se puede establecer una conexión segura con el servidor.
Respuestas:
Para iOS9, Apple tomó una decisión radical con iOS 9, deshabilitando todo el tráfico HTTP no seguro de las aplicaciones de iOS, como parte de App Transport Security (ATS) .
Para simplemente deshabilitar ATS, puede seguir estos pasos abriendo Info.plist y agregue las siguientes líneas:
fuente
Aunque permitir cargas arbitrarias (
NSAllowsArbitraryLoads = true
) es una buena solución, no debe deshabilitar ATS por completo, sino habilitar la conexión HTTP que desea permitir:fuente
iOS 9 obliga a las conexiones que utilizan HTTPS a ser TLS 1.2 para evitar vulnerabilidades recientes. En iOS 8, incluso se admitían conexiones HTTP sin cifrar, por lo que las versiones anteriores de TLS tampoco presentaban ningún problema. Como solución alternativa, puede agregar este fragmento de código a su Info.plist:
* referenciado a App Transport Security (ATS)
fuente
Si solo está apuntando a dominios específicos, puede intentar agregar esto en el Info.plist de su aplicación:
fuente
Parece que iOS 9.0.2 rompe las solicitudes de puntos finales HTTPS válidos. Mi sospecha actual es que requiere certificados SHA-256 o falla con este error.
Para reproducir, inspeccione su UIWebView con safari e intente navegar a un punto final HTTPS arbitrario:
Ahora intente ir a Google (porque, por supuesto, tienen un certificado SHA-256):
Agregar una excepción a la seguridad del transporte (como se describe en la respuesta anterior de @ stéphane-bruckert) funciona para solucionar este problema. También asumo que la desactivación completa
NSAppTransportSecurity
también funcionaría, aunque he leído que desactivarla por completo puede poner en peligro la revisión de la aplicación.[EDITAR] Descubrí que simplemente enumerar los dominios a los que me estoy conectando en el
NSExceptionDomains
dict soluciona este problema, incluso cuando lo dejoNSExceptionAllowsInsecureHTTPLoads
establecido en verdadero. : \fuente
El problema es el certificado SSL en el lado del servidor. O algo está interfiriendo o el certificado no coincide con el servicio. Por ejemplo, cuando un sitio tiene un certificado SSL para www.mydomain.com mientras que el servicio que usa se ejecuta en myservice.mydomain.com. Esa es una máquina diferente.
fuente
Recibo el mismo error cuando especifico mi URL HTTPS como: https://www.mywebsite.com . Sin embargo, funciona bien cuando lo especifico sin las tres W como: https://mywebsite.com .
fuente
Proyecto Xcode -> goto info.plist y haga clic en el botón + y luego en Agregar (Configuración de seguridad de transporte de la aplicación) Expandir, Permitir cargas arbitrarias Establezca SÍ. Gracias
fuente
Mi problema fue
NSURLConnection
y eso quedó obsoleto en iOS9, así que cambié toda la APINSURLSession
y eso solucionó mi problema.NSURLConnection obsoleto en iOS9
fuente
En mi caso, enfrenté este problema en mi simulador porque la fecha de mi computadora estaba atrasada con respecto a la fecha actual. Así que verifique este caso también cuando se enfrente a un error de SSL.
fuente
Estaba obteniendo un error por debajo de la reproducción
Me aseguré de agregar una entrada en los dominios de excepción en el archivo plist y NSAllowsArbitraryLoads está configurado en verdadero y aún así veo un error.
Entonces me di cuenta de que estoy jugando URL con https y no http.
Configuré la URL del video en http y el problema se resolvió.
fuente
Recibía este error para algunas llamadas de red y no para otras. Estaba conectado a una red wifi pública. Ese wifi gratuito parecía manipular ciertas URL y, por lo tanto, el error.
¡Cuando me conecté a LTE, ese error desapareció!
fuente