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

API standards et tierces Android Discussion :

Connexion HTTPS sur vieux mobiles


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1
    Par défaut Connexion HTTPS sur vieux mobiles
    Bonjour,

    j'ai dans mon appli un appel à un webservice en https. Avec les versions d'Android >= 3 aucun souci.
    Avec les autres, plus anciens, j'ai l'exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.net.ssl.SSLHandshakeException: org.bouncycastle.jce.exception.ExtCertPathValidatorException: Could not validate certificate signature.
    J'ai fait de longues recherches sur le net, sans trouver mon bonheur.
    J'ai utilisé keytool pour générer un .bks que je charge dans un truststore, mais ça ne donne rien (toujours la même exception et le même message).

    Voilà le bout de code de mon appli qui ouvre la connexion avec le serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    URL urlWS = new URL("https://www.toto.fr/tata.asmx");
    con = (HttpsURLConnection) urlWS.openConnection(); 
    con.setRequestMethod("POST");
    con.setDoOutput(true);
    con.setDoInput(true);
    con.setRequestProperty("Content-type", "text/xml; charset=utf-8");   
    con.setRequestProperty("Accept-Encoding", "gzip");
    con.setRequestProperty("SOAPAction", soapAction);
     
    InputStream stream = getResources().openRawResource(R.raw.trustca);
    KeyStore ks = KeyStore.getInstance("BKS");
    ks.load(stream, "monpwd".toCharArray());
    stream.close();
    TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    tmf.init(ks);
    X509TrustManager defaultTrustManager = (X509TrustManager) tmf.getTrustManagers()[0];
    SSLContext context2 = SSLContext.getInstance("TLS");
    context2.init(null, new TrustManager[] { defaultTrustManager }, null);
    HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.STRICT_HOSTNAME_VERIFIER;
    con.setSSLSocketFactory(context2.getSocketFactory());
    con.setHostnameVerifier(hostnameVerifier);
    con.connect();
    OutputStream reqStream = con.getOutputStream();
    Si quelqu'un a une idée, car là je ne sais plus quoi faire.

    Merci d'avance.

    C.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Java / C++
    Inscrit en
    Mars 2013
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java / C++

    Informations forums :
    Inscription : Mars 2013
    Messages : 128
    Par défaut
    Bonsoir ctof13,

    Après quelques recherches sur le net, il semblerai que les anciennes version d'Android on des problèmes avec les certificats.

    Une personne ici a réussi à les faire fonctionner.

    Je ne peut malheureusement pas t'aider plus... (espérons que quelqu'un d'autre passe par là)

    Bon courage.

  3. #3
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    La documentation officielle a ce sujet
    http://developer.android.com/trainin...urity-ssl.html

Discussions similaires

  1. [WM19] Connexion Wifi sur Windows Mobile
    Par Programming-Z dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 16/12/2014, 13h49
  2. Redirection HTTP sur (très) vieux navigateur
    Par crozet.magenta dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 06/05/2014, 16h21
  3. Connexion à un Web Service : Ok sur émulateur // KO sur le mobile
    Par sebpern dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 24/03/2013, 11h07
  4. Connexion https pour récupérer un fichier sur serveur web
    Par benibur dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 07/01/2010, 14h26
  5. Réponses: 2
    Dernier message: 25/06/2009, 16h10

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