Activation de SSL protocoles avec Android WebViewClient
Mon application utilise WebViewClient pour faire les connexions SSL pour le serveur.
Le serveur est configuré pour n'accepter que les TLSv1.1 et protocoles mentionnés ci-dessus.
1) Comment puis-je vérifier les protocoles SSL sont une charge et b) Activée par défaut lors de l'utilisation d'Android WebViewClient sur un périphérique.
2) Comment puis-je activer des protocoles SSL pour Android WebViewClient exemple utilisé dans mon application.
Sur l'une des épreuves les appareils fonctionnant sous Android 4.3,
WebViewClient jette onReceivedError de rappel avec la description "impossible d'effectuer la connexion SSL"
Chrome journaux sont comme suit:
01-29 15:58:00.073 5486 5525 W chromium_net: externe/chrome/net/http/http_stream_factory_impl_job.cc:865: [0129/155800:AVERTISSEMENT:http_stream_factory_impl_job.cc(865)] pour retomber à SSLv3 parce que l'hôte est intolérant au TLS: 10.209.126.125:443 01-29 15:58:00.083 5486 5525 E chromium_net: externe/chrome/net/socket/ssl_client_socket_openssl.cc:792: [0129/155800:ERREUR:ssl_client_socket_openssl.cc(792)] négociation a échoué; retournée 0, SSL code d'erreur 5, net_error -107
Mon application utilise également HttpClient et HttpsUrlConnection classes de configuration des Connexions SSL. J'ai été en mesure d'utiliser SSLSocket API pour permettre à des protocoles spécifiques lors de l'utilisation de ces classes.
http://developer.android.com/reference/javax/net/ssl/SSLSocket.html#setEnabledProtocols(java.lang.String[])
J'ai besoin de faire la même chose avec WebViewClient.
Quelqu'un at-il jamais? Je travaille sur un projet où nous avons besoin de secours de TLS v1.2 à 1,1 pour les trois cas de non-production de serveurs de test. Nous essayons d'utiliser quelque chose comme ceci: adb shell " echo "du navigateur --show-fps-compteur --ssl-version-min=tls1.1 --ssl-version-max=tls1.1" > /data/local/tmp/webview-de ligne de commande' Le compteur de FPS montre Android L de la tablette mais pas sur Android TV (ce qui est bizarre aussi qu'ils doivent être de la même webview code). Le ssl-version drapeaux ne semble pas fonctionner; un tcpdump capture de l'appareil affiche toujours TLS v1.2 utilisé. Toute aide serait super.
Avez-vous trouvé la solution à ce problème ?? Je suis également confronté à la même question
Non, je ne pouvais pas trouver un moyen de configurer ce paramètre dans le WebViewClient. Je pense que le commentaire ci-dessus de Robert est correct.
blog.dev-area.net/2015/08/13/...
OriginalL'auteur user802467 | 2015-02-04
Vous devez vous connecter pour publier un commentaire.
Comme par documenation il n'est PAS possible de prendre en charge TLS 1.0 dans WebView Android < 4.3. Pour Android 4.4, il est désactivé par défaut.
Consultez ce tableau pour le support de TLS 1.0 dans les différents navigateurs: https://en.wikipedia.org/wiki/Transport_Layer_Security#Web_browsers
Il dit
Disabled by default
de 4.1 à 4.4. Alors, comment l'activer?OriginalL'auteur M. C.
Si votre application est de l'utiliser, ou vous êtes prêt à utiliser, Google Play services, vous pouvez utiliser les nouvelles fonctionnalités de sécurité sur les téléphones plus anciens par l'installation de leur
Provider
. Il est facile à installer, une seule ligne (en plus de la gestion des exceptions, etc). Vous devrez également ajouter google play services pour votre gradle fichier si vous ne l'avez pas déjà.ProviderInstaller
est inclus dans le-base
paquet.Pour un exemple complet, consultez "Mise à jour de Votre Fournisseur de services de Sécurité pour Protéger Contre SSL Exploits" de Google.
Aussi, même après avoir installé le fournisseur avec succès, vous devez activer TLS 1.2/TLS 1.1 explicitement tout en faisant la demande https dans les Versions d'Android entre [16-20]. J'ai vérifié cela sur un KITKAT appareil.
Remarque: Cela ne semble pas résoudre le problème avec 4.1.2 clients.
plus bas la version que j'ai réussi à obtenir ce travail a été 4.4.2. L'interception de création de la socket et en appelant
setEnabledProtocols
semble être la seule solution.Ceci est-il toujours travailler pour n'importe qui? J'ai remarqué que ma 4.4 les appareils ne sont plus de la charge de TLS 1.2 servi de contenu.
OriginalL'auteur iagreen
Fait, j'ai réussi à le faire fonctionner, mais vous avez besoin okHttp de la bibliothèque.
Essayez cela, lorsque vous êtes en train de configurer le navigateur de l'activité:
Aussi, vous aurez besoin classique Trust Manager Manipulateur, socket SSL usine et sa mise en œuvre dans votre classe d'Application:
Socket SSl Usine:
La classe App:
Avez-vous résolu votre problème?S'il vous plaît laissez-moi savoir si vous avez fait il.
le problème était dans la 3e partie du service, nous utilisons le schéma différent pour android 4.4 ci-dessous(il n'est pas lié à android)
OriginalL'auteur Alex
c'est beause android 4.3 pas en charge TLS 1.1, mais seulement TSL1.0
lire cet article
https://www.ssllabs.com/ssltest/clients.html
trouver android 4.3 verrez
Protocoles
TLS 1.3 Pas
TLS 1.2
TLS 1.1.
TLS 1.0 Oui
SSL 3 INSÉCURITÉ Oui
SSL 2 Pas de
OriginalL'auteur lemon