I have created a phonegap app which needs to communicate with a self signed SSL service.
I whitelisted my url in res/xml/cordova.xml like so:
I did the following to get around the restriction (currently using Cordova 1.7.0). This is definitely inherently insecure:
public class MyWebViewClient extends CordovaWebViewClient {
public MyWebViewClient(DroidGap ctx) {
super(ctx);
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// testing against getPrimaryError() or hasErrors() will fail on Honeycomb or older.
// You might check for something different, such as specific info in the certificate,
//if (error.getPrimaryError() == SslError.SSL_IDMISMATCH) {
handler.proceed();
//} else {
// super.onReceivedSslError(view, handler, error);
//}
}
}
and then in the main activity:
@Override
public void init() {
super.init();
//pass in our webviewclient to override SSL error
this.setWebViewClient(this.appView, new MyWebViewClient(this));
}