HttpClient schlägt fehl mit Handshake fehlgeschlagen in Android 5.0 Lollipop

DefaultHttpClient in Android 5.0 Lollipop scheint defekt zu sein. Es kann keine Verbindung zu einigen Sites hergestellt werden, die von früheren Android-Versionen erfolgreich eingerichtet wurden.

Zum Beispiel versuche ich, eine Verbindung zu @ herzustellhttps: //uralsg.megafon.r

//Create httpclient like in https://stackoverflow.com/questions/18523784/ssl-tls-protocols-and-cipher-suites-with-the-androidhttpclient
HttpClient client = new DefaultHttpClient(manager, params);
HttpGet httpGet = new HttpGet("https://uralsg.megafon.ru");
HttpResponse client = httpclient.execute(httpGet);

Dieser Code funktioniert in Android 2.3-4.4, schlägt jedoch unter Android 5.0 (Geräte und Emulator) mit Fehler fehl. Die Verbindung wurde von einem Peer geschlossen. Dies ist natürlich verständlich, da Android 5.0 versucht, diesen alten Server mit TLSv1.2 und modernen Chiffren zu verbinden, und diese nicht unterstützt.

Ok, mit dem Beispielcode in SSL / TLS-Protokolle und Cipher Suites mit dem AndroidHttpClient Wir begrenzen das Protokoll und die Verschlüsselung auf TLSv1 und SSL_RSA_WITH_RC4_128_MD5. Jetzt schlägt es mit einem anderen Fehler fehl:

javax.net.ssl.SSLHandshakeException: Handshake failed
caused by 
    error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac 
    (external/openssl/ssl/s3_pkt.c:1286 0x7f74c1ef16e0:0x00000003) 
    at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake

Und natürlich läuft dieser Code problemlos auf Android 2.3-4.4.

Ich habe den Verkehr mit Wireshark untersucht:

302 4002.147873000  192.168.156.30  83.149.32.13    TLSv1   138 Client Hello
303 4002.185362000  83.149.32.13    192.168.156.30  TLSv1   133 Server Hello
304 4002.186700000  83.149.32.13    192.168.156.30  TLSv1   1244    Certificate
305 4002.186701000  83.149.32.13    192.168.156.30  TLSv1   63  Server Hello Done
307 4002.188117000  192.168.156.30  83.149.32.13    TLSv1   364 Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message
308 4002.240695000  83.149.32.13    192.168.156.30  TLSv1   61  Alert (Level: Fatal, Description: Bad Record MAC)

Sie können sehen, dass die Verbindung hergestellt, der Server jedoch alarmiert wurde, da die verschlüsselte Handshake-Nachricht möglicherweise nicht entschlüsselt werden konnte.

Ich habe es nicht geschafft, eine Verbindung zu @ herzustellhttps: //uralsg.megafon.r Verwenden von HttpClient unter Android 5.0. Der Standardbrowser verbindet es jedoch. Android 2.3-4.4 verbindet diese Site in keiner Weise ohne Probleme.

Ist es eine Möglichkeit für HttpClient, solche Sites zu verbinden? Dies ist nur ein Beispiel. Ich bin mir sicher, dass es viele Legacy-Server gibt, die mit Android 5.0 und HttpClient nicht verbunden werden konnten.