17 commentaires

  1. psv

    Bonjour,
    J’ai réalisé ce tuto pas à pas.
    Tout fonctionne merveilleusement bien.
    Je tiens à signaler cependant qu’il y a une variable non initialisée dans le code fourni (je crois que c’est la variable “trusted”, de mémoire…)

    J’ai aussi rencontré le problème que le nom de mon certificat ne correspondait pas au site interrogé, c’est une erreur de type :
    javax.net.ssl.SSLException: hostname in certificate didn’t match

    Pour palier à ce problème, il faut modifier une ligne (vous saurez retrouver laquelle) de la façon suivante :
    sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

    C’est assez explicite je crois.

    Merci pour ce tuto, c’est parfait.

    Répondre
  2. Houssam

    Merci infiniment pour ce tuto.

    avec Android,une fois on a l’apk de l’application, on peut extraire toutes les ressources y compris le certificat et puis, on peut aussi avoir le code source de l’application et donc avoir le mot de passe du certificat.
    alors toute personne peut avoir le certificat et son mot de passe et pourra donc créer facilement une autre application qui communique avec le serveur!!

    ceci pose un grand problème de sécurité n’est ce pas ?!!

    Répondre

    1. Effectivement c’est possible. Malheureusement c’est le gros problème avec Android et il est difficile de sécuriser davantage

      Répondre
      1. Houssam

        Merci Arnaud pour ta réponse.

        je te serai reconnaissant si tu peux m’indiquer d’autres moyens pour sécuriser davantage une application android surtout les échanges entre un client mobile et un serveur web.
        peu importe si c’est difficile, l’essentiel que ça soit pas impossible.

        Répondre
  3. mejdoub khouloud

    Bonjour,
    j’ai un problème dans mon application android ,l’erreur est “No peer certificate”
    Pouvez vous m’explique cette erreur?

    Répondre

    1. Cela signifie que le certificat n’est pas trouvé lors de la requête. Il a dû être mal ajouté au keystore.

      Répondre

      1. Bonjour,

        j’ai effectué toute les manoeuvres indiquées et bien récupéré les 3 certificats pour le site ” https://www.mobileresto.com/ ” je les ai ajoutés au keystore mais lorsque j’execute ma commande il me met malgré tout no peer certificate.

        Auriez vous une idée?
        Merci pour vos réponses :-)

        Répondre

          1. Merci pour ta réponse :) entre temps j’ai eu l’ocassion de trouver une solution. J’ai donc posté une librairie sur github qui permet d’effectuer des requêtes https à l’aide de doPost ou doGet.


          2. J’ai comme l’impression que cette librairie ne fait qu’accepter tous les certificats, sans rien vérifier. Le problème est que tu perds tout l’aspect sécurité d’une connexion HTTPS vu que tous les certificats sont validés.

  4. BELDA

    Salut , ce code marche pas avec moi , je pense que la classe SSLSocketFactory est absraite du coup cette ligne ” SSLSocketFactory sf = new SSLSocketFactory(trusted); ”
    est une erreur ! merci de votre aide

    Répondre

    1. L’erreur vient certainement d’un mauvais import. Ici, l’import doit être import org.apache.http.conn.ssl.SSLSocketFactory;
      Tu as sûrement importé le mauvais package (javax.net.ssl.SSLSocketFactory)

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>