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 :

Keystore : Problème de certificats chainés


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut Keystore : Problème de certificats chainés
    Bonjour,

    J'ai actuellement un certificat chainé (3 parties) et avec ça j'essaie d'authentifier mon client.

    En observant les échanges à l'aide de WireShark, je constate que mon client n'envoie pas tout le certificat chainé, mais uniquement la 1ère partie. Ce qui empêche l'authentification du client.

    J'ai essayé de trouver une solution à l'aide de la méthode getCertificateChain(alias), mais rien à faire ... En faite c'est surtout je ne sais pas que faire avec mon certificat, est-ce que c'est possible de dire au KeyStore ou au KeyManager de prendre ça en compte.

    Voici un bout de mon code ou je créé mon KeyManagers.

    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
    24
    25
    private KeyManager[] createKeyManagers(String keyStorePassword) throws CertificateException, IOException, KeyStoreException, NoSuchAlgorithmException, UnrecoverableKeyException {
        // Creation du KeyStore en specifiant l extension du certificat accepte
        KeyStore keyStore = KeyStore.getInstance("BKS");
     
        // Creation d un Inputstream pour recupere le ficher KeyStore (ressource)
        InputStream inputstream = this.getResources().openRawResource(R.raw.mykeystore);
     
        // Initialise le Keystore avec le certificat de confiance et son mot de passe
        keyStore.load(inputstream, keyStorePassword.toCharArray());
     
     
        alias = ((String)keyStore.aliases().nextElement());
        privateKey = (PrivateKey)keyStore.getKey(alias, keyStorePassword.toCharArray());
     
      java.security.cert.Certificate[] certs = keyStore.getCertificateChain(alias);
     
     
      //Création du KeyManagerFactory et chargement du certificat dans celui ci 
        KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
        keyManagerFactory.init(keyStore, keyStorePassword.toCharArray());
     
        KeyManager[] keyManager = keyManagerFactory.getKeyManagers();
     
        return keyManager;
      }
    En espérant que vous ayez déjà eu ce genre de problème

  2. #2
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 40
    Par défaut
    La seule solution que j'ai trouvé est de refaire le certificat client, signé par le certificat CA global et Root (comment avant), mais ne pas les chainer.

    Je n'ai pas réussis à trouver d'information pour savoir si Android ne supporte pas les certificats chainés ou s'il y a du code qui permet de l'avertir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de Certificat, Keystore
    Par rockley dans le forum Sécurité
    Réponses: 0
    Dernier message: 21/02/2011, 08h53
  2. [SSL Socket - Keystore] - Problème de certificat
    Par yoyooo dans le forum Sécurité
    Réponses: 1
    Dernier message: 10/07/2008, 15h01
  3. Réponses: 10
    Dernier message: 08/07/2006, 11h12
  4. Réponses: 3
    Dernier message: 26/05/2006, 19h49
  5. [problème] affichage de chaines
    Par 123quatre dans le forum C
    Réponses: 12
    Dernier message: 07/01/2006, 20h47

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