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

Sécurité Java Discussion :

sunpkcs11 et NSS


Sujet :

Sécurité Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut sunpkcs11 et NSS
    Bonjour, j'utilise NSS pour inserer des certificats dans le magasin de Firefox

    Voici l'initiailisation de NSS et de mon keystore:
    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
     
    File pkcs11Cfg = File.createTempFile("sunpkcs11", ".cfg");
    FileOutputStream os = new FileOutputStream(pkcs11Cfg);
    os.write("name = NSScrypto\n".getBytes());
    os.write("nssLibraryDirectory = C:/Program Files/Mozilla Firefox/\n".getBytes
    os.write(("nssSecmodDirectory = " + dbPath.replace('\\', '/') + "\n").getBytes());
    os.write("nssDbMode = readWrite\n".getBytes());
    os.write("nssModule = keystore\n".getBytes());
    os.write("attributes = compatibility".getBytes());
    os.close();
     
    Security.addProvider(new SunPKCS11(pkcs11Cfg.getAbsolutePath()));
     
    //load();
    keystore = KeyStore.getInstance("PKCS11");
    et voici ma methode pour inserer des certificats:
    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
     
    public void addCertificate(String storeName, X509Certificate certificate) 
    throws Exception
    {
      keystore.load(null, "".toCharArray());
      Enumeration e = keystore.aliases();
      while (e.hasMoreElements())
      {
        if (new String(keystore.getCertificate((String)e.nextElement()).getEncoded()).equals(certificate.getEncoded()))
          return;
      }
     
      keystore.setCertificateEntry(certificate.getSubjectDN().getName(), certificate);
      keystore.store(null, "".toCharArray());
    }
    LE problème c'est que le code d'insertion de certificat fonctionne mais echoue pour certain certificat avec l'exception suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    GRAVE: Error while install certificate GIP-CPS-FR: java.lang.NullPointerException
    	at sun.security.pkcs11.P11KeyStore.getID(P11KeyStore.java:2226)
    	at sun.security.pkcs11.P11KeyStore.getTokenObject(P11KeyStore.java:2324)
    	at sun.security.pkcs11.P11KeyStore.destroyCert(P11KeyStore.java:2027)
    	at sun.security.pkcs11.P11KeyStore.deleteEntry(P11KeyStore.java:540)
    	at sun.security.pkcs11.P11KeyStore.engineSetEntry(P11KeyStore.java:1035)
    	at sun.security.pkcs11.P11KeyStore.engineSetCertificateEntry(P11KeyStore.java:507)
    	at java.security.KeyStore.setCertificateEntry(Unknown Source)
    	at b.b.b.MozillaKeystore.addCertificate(b.java:104)
    	at b.b.b.a.eventNewCertificate(a.java:435)
    	at b.b.b.b.b.a(b.java:132)
    	at b.b.b.g.run(g.java:261)
    	at java.lang.Thread.run(Unknown Source)
    Une raison de cet echec pour certain certificat?

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    Je ne sais pas si tu as fini par trouver une réponse à ta question

    en tout cas pour moi, j'ai exactement ce type d'erreur quand j'essaye d'importer dans mon keystore un certificat avec un alias avec la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ks.setCertificateEntry(alias, cert);
    avec ks mon keystore
    alias l'alias que je lui donne
    et cert le certificat à importer.

    par contre si dans mon keystore je possede deja un certificat avec le même alias, alors la je me retrouve avec cette belle erreur

    Donc pense à vérifier que dans ton keystore il n'existe pas deja un certificat avec le même alias

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 38
    Par défaut
    Non je suis certain que l'alias n'est pas present car même en ayant ajouté un tet sur l'alias dans le code je me trouve avec la même erreur.

    Par contre il m'arrive de temps à autre que je ne puisse plus afficher les certificats dans Firefox. Avec une popup me signalant, à l'ouverture de Firefox, qu'il a un problème avec le module des certificats. Et dans ce cas je suis obliger de supprimer le fichier cert8.db pour laissez Firefox le regenerer.

    Une idée de ce problème?

Discussions similaires

  1. mozilla librairie NSS
    Par fainardi83 dans le forum Sécurité
    Réponses: 0
    Dernier message: 25/05/2011, 11h17
  2. rubrique texte N°ss avec des - et .
    Par jeanahmed dans le forum WinDev
    Réponses: 2
    Dernier message: 21/09/2009, 21h29
  3. Problème avec ldap/nss/pam
    Par YaN87 dans le forum Réseau
    Réponses: 1
    Dernier message: 05/02/2009, 16h35
  4. Débutant : PAM + NSS + LDAP + SSH
    Par delcedo dans le forum Debian
    Réponses: 1
    Dernier message: 18/06/2008, 14h19
  5. Réponses: 5
    Dernier message: 03/09/2007, 19h04

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