Escenario: Digamos que un MITM pudo plantar un certificado falso y autofirmado en mi cliente (aplicación de Android), en lugar del certificado autofirmado de mi servidor.
Cuando ahora mi aplicación intenta conectarse al servidor, utilizando:
URL url = new URL("https://www.hardcoded.unchangeable.uri.toserver");
HttpsURLConnection urlConnection = (HttpsURLConnection)url.openConnection();
urlConnection.setSSLSocketFactory(context.getSocketFactory());
urlConnection.connect();
...
¿El MITM puede redireccionar la solicitud a su servidor?
Si no estoy seguro, solo vería una excepción de apretón de manos, ¿no?