IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

No peer certificate


Sujet :

Android

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut No peer certificate
    Bonjour,

    J'ai un problème que je n'arrive pas à résoudre.

    J'ai une appli Android qui fait un post Https via les classes Apache de base.

    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpClient client = new DefaultHttpClient();
    puis HttpPost post suivi d'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    traditionnel client.execute(post)
    Après mise au point ça fonctionne parfaitement sur mon Nexus Android 4.0.2.

    J'ai decidé de voir ce que ça donnait sur Android 2.3 Nexus S ou Galaxy Tab et là
    paf je me prend une bonne exception SSL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    W/System.err(29003): javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
    W/System.err(29003):    at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:258)
    W/System.err(29003):    at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
    W/System.err(29003):    at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
    W/System.err(29003):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:177)
    W/System.err(29003):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    W/System.err(29003):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    W/System.err(29003):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
    W/System.err(29003):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    W/System.err(29003):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    Alors bien entendu j'ai testé de charger un keystore avec la chaine de certificat, via
    une SSLSocketFactory mais ça ne change rien ! D'ailleurs les certificats ont l'air normaux
    ainsi que la chaîne (Entrust).

    J'en deduis donc, que c'est plutôt un problème de handshake (genre paramétrage du
    client) car sous ICS 4.0.2 ça fonctionne.

    Avez-vous une idée de piste ?

    J'ai mis le topic de base sous Android car c'est sur cette plate-forme qu'est mon
    problème mais bon peut être que d'autres ont eu ce problème également ?

    Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    Je poursuis mon analyse :

    Avec les navigateurs des plates-formes pas de problème de connexion au site.
    Par contre avec HttpClient problème en fonction des versions d'Android.

    A ce jour :
    - Android Froyo : Ko
    - Android Honycomb : Ok
    - Gingerbread : Ko
    - Android ICS : Ok

    Avec les navigateurs des plateformes pas de problème, ça fonctionne : par contre pas avec HttpClient.

    Du coup j'ai testé le Troubleshooting de http://hc.apache.org/httpclient-3.x/sslguide.html

    Et j'obtiens ce coup-ci un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     IOException:org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.
    javax.net.ssl.SSLHandshakeException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.
    javax.net.ssl.SSLHandshakeException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.
        at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:477)
        at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLOutputStream.<init>(OpenSSLSocketImpl.java:805)
        at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.getOutputStream(OpenSSLSocketImpl.java:712)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    Bon alors je continue les pistes.

    Hier j'ai substitué l’implémentation HttpClient fournie par Android par la dernière
    release Apache, histoire de voir si ça ne venait pas de HttpClient.

    Et bien non ça fait toujours le NoPeerCertificate !

    Sachant que les certificats AC dans le TrustStore ne marchent pas dans ce cas.

    Il me reste donc une problèmatique Bouncy ou JSSE.

    Soit le Handshake échoue à cause d'une conf serveur pas supportée (en tout
    cas sous <HoneyComb), soit le/les certificats présentés ont une particularité
    pas géré (AC Entrust de 1999 pas tout jeune).

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/11/2014, 09h53
  2. Réponses: 0
    Dernier message: 24/02/2012, 10h58
  3. CERTIFICATION
    Par smeagol.ugly dans le forum Développement
    Réponses: 3
    Dernier message: 09/06/2004, 13h52
  4. Certification 70-228 sql server 2000
    Par Cotentin dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/11/2003, 09h01
  5. Idée pour développer un logiciel de peer to peer
    Par Jibees dans le forum Développement
    Réponses: 5
    Dernier message: 09/06/2003, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo