iOS e PhoneGap: richieste AJAX su https con certificati self signed




Uno degli utenti di YATTRSSC mi segnala che l'accesso alla sua istanza di TT-RSS non va a buon fine: il suo server risponde esclusivamente su HTTPS con certificato self signed.

Un rapido debug (e una ricerca su google) mi conferma che il webkit utilizzato come sandbox per l'applicazione phonegap in caso di certificato non affidabile alla prima richiesta chiederebbe (come detta lo standard) la conferma dell'utente a proseguire.

Il problema รจ che si aspetta la conferma anche nel caso di una richiesta AJAX, che a quel punto fallisce miseramente.



La soluzione? Abbastanza semplice a dire il vero: qualche riga di codice per convincere il webkit ad accettare in maniera silenziosa tutti i certificati.

Da aggiungere alla fine di AppDelegate.m:
    
@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end

Published: April 28 2013

  • category: