KSOAP 2 Android avec HTTPS
Je suis en utilisant KSOAP2 pour gérer le SAVON dans Android, mais il utilise le protocole https pour le SAVON url et j'obtiens cette erreur: javax.net.le protocole ssl.SSLException: Pas de confiance certificat de serveur
Une erreur normal car le certificat n'est pas approuvé, mais quelqu'un sait comment contourner cette erreur?
Je ne peux pas gérer le certificat parce que c'est à partir d'une autre entreprise et je n'ai pas accès à la changer.
Grâce
OriginalL'auteur rallat | 2010-08-09
Vous devez vous connecter pour publier un commentaire.
Je ne peux pas encore de commentaires donc je poste mes commentaires à rallat réponse ici. Sa solution fonctionne, mais il a besoin de plus d'explications. Pour exécuter ksoap2 avec ssl:
ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar
dans un projetHttpTransportSE.java
,ServiceConnectionSE.java
(j'ai aussi besoin de copierTransport.java
,ServiceConnection.java
etHeaderProperty.java
). Supprimer les importations en provenance de ces fichiers et assurez-vous qu'ils utilisent vos fichiers (pas les importations deksoap2.jar
)Utilisation rallat réponse ( je copie-collé):
ServiceConnectionSE.java
ajouter ce pour accepter les certificats non fiables:ensuite utiliser ces constructeurs pour
permettre de certificats non fiables et non
vérifié les noms d'hôtes:
Deuxième constructeur
Dans votre code utilisation:
D'autres choses que des tutoriels
Ne pouvez pas trouver les sources de ksoap à l'aide de la condition de lien cassé. =\ mise à jour: j'ai trouvé ça... il suffit d'utiliser :github.com/mosabua/ksoap2-android
OriginalL'auteur
De vérifier à nouveau ce problème, j'ai découvert plus de solution propre pour moi. Pas de KSOAP2 modification des fichiers nécessaires.
Dans votre projet, en lien la
ksoap2-android-assembly-3.0.0-jar
, sans aucune modification.Ensuite, créez un fichier nommé
SSLConnection.java
avec ce code:Et il suffit d'appeler à
SSLConection.allowAllSSL();
avant d'appeler une méthode de serveur via KSOAP2. Tout fonctionne pour moi. Tous les certificats SSL sont acceptés et que je peux utiliser KSOAP2 avec le protocole https.Parfaite solution simple! Merci 🙂
heureux de vous aider! 🙂
C'est très dangereux de la solution de contournement. Vous laisse exposé aux attaques de type MITM.
Ne fonctionne pas sur Android 4.2
OriginalL'auteur
J'ai trouver la réponse par moi-même
sur ServiceConnectionSE.java ajouter ce pour accepter les certificats non fiables:
puis dans le constructeur d'ajouter ce pour permettre de certificats non fiables et non pas vérifié les noms d'hôtes:
OriginalL'auteur
Créer une nouvelle classe FakeX509TrustManager pour traiter le problème de certificat,
La nouvelle de la classe est la suivante:
désolé, pas de ressource.
OriginalL'auteur