Tenemos una aplicación de iOS que usa una UIWebView para mostrar contenido. Nos cargamos con los datos con código que se parece a esto:Ignorar certificados de servidor inválidos con UIWebView
NSURL *url = [NSURL URLWithString:myURLString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_webView setDelegate:self];
[_webView loadRequest:request];
Esto funcionaba bien con peticiones HTTP, pero ahora estamos usando HTTPS contra un servidor con un certificado SSL autofirmado. Cuando se ejecuta el anterior, el método se llama a webView:didFailLoadWithError:
delegado, con este error:
The certificate for this server is invalid. You might be connecting to a server that is pretending to be "blah.blah.blah.com" which could put your confidential information at risk."
me gustaría simplemente ignorar el certificado no válido y seguir con la solicitud, ya que uno puede hacer en Mobile Safari.
He visto cómo evitar este problema al utilizar NSURLConnection
(ver HTTPS request on old iphone 3g, por ejemplo), pero ¿qué se puede hacer con un UIWebView
?
Imagino que podría volver a trabajar el código para que use NSURLConnection
para hacer las solicitudes y luego ponga los resultados en la vista web llamando a su método loadHTMLString:baseURL:
, pero eso se complicará cuando las páginas tengan imágenes, CSS, JavaScript, y así sucesivamente. hay una manera mas facil?
El uso de este enfoque hará que su aplicación sea rechazada por AppStore. – Franklin
Es perfecto para usar un certificado de servidor local autofirmado. Lo rodeé todo con '#if DEBUG' para no ser rechazado. – bendytree