Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/06/2013, à 22:28

phlinux

[Résolu] Problème d'import de pkcs#12 dans firefox

Il m'est impossible d'importer une clef PKCS#12 dans firefox

Je dispose d'un serveur (ubuntu 12.04) sur lequel j'ai crée ma propre autorité CA

J'ai crée sur mon portable (FF 20.0 - ubuntu 11.10 ... oui, la mise à jour est prévue wink )
une demande de certificat, l'ai signée par mon CA et transformée en pkcs#12 puis retournée au portable.

Sur ce portable avec un dual boot,
- Côté WinXP, l'import dans firefox se passe correctement et après avoir validé l'exception de mon certificat je peux me connecter en https à mon serveur.
- Côté Linux, lors de l'import dans 'Vos certificats' dans firefox et après avoir saisi les mot de passe de sécurité personnelle et celui protégeant la clef privée et le certificat, j'obtiens le message :

L'operation PKCS #12 a échoué pour des raisons inconnues

Ce problème semble être un vieux serpent de mer si j'en juge par le nombre de questions relatives à ce problème sur le net.
J'ai tenté d'explorer les pistes les plus proches de mon problème mais en vain. (non, je n'ai pas installé de TorButton big_smile)

J'ai alors tenté les commandes nss3 pour essayer d'avoir des messages un peu plus clairs:

  certutil -L -d sql:/home/phl/.mozilla/firefox/z535w55y.default/

ne renvoie que ceci

  Certificate Nickname                              Trust Attributes
                                                    SSL,S/MIME,JAR/XPI

alors que devraient être listées ici toutes les clés apparaissant dans firefox

  pk12util -d /home/phl/.mozilla/firefox/z535w55y.default -i phl.cert.p12
  Enter Password or Pin for "NSS Certificate DB": ***********************
  Enter password for PKCS12 file: **************************

retourne :
  pk12util: PKCS12 decode import bags failed: Error adding certificate to database.

  certutil -A -t "u,u,u" -d sql:/home/phl/.mozilla/firefox/z535w55y.default/ -n "phl" -i phl.cert.p12

retourne :
  certutil: could not decode certificate: security library: invalid arguments.


Voilà, maintenant je ne suis pas plus avancé !

Si quelqu'un avait une p'tite idée pour me mettre sur la voie ....

Merci par avance,
PhL

PS: Pour comparer, j'ai crée coté serveur (Ubuntu 12.04) un client et généré un certificat pour lui.
L'import dans Firefox (FF 21.0), toujours côté serveur, s'est passé sans problème pour ce nouveau client.

Dernière modification par phlinux (Le 11/06/2013, à 18:43)


Ubuntu - Precise Pangolin 64bits
ATI Radeon HD5670

Hors ligne

#2 Le 10/06/2013, à 12:03

Pseudo supprimé

Re : [Résolu] Problème d'import de pkcs#12 dans firefox

bonjour,
sujet traité plusieurs fois.
x509_serveur != x509_client
tu ne peux pas créer un x509_client à partir d'un x509_serveur. Ils ont éventuellement la même AC (Autorité de Certification), mais c'est tout ..., comme point commun.

'umm, tu regarderas ce topic #post7
il faut peut-être que tu importes ton AC, à moins que tu l'inclues lors de la création du x509 client p12.
Les mots de passe ne doivent pas dépasser 14/15 caractères sinon erreur de segmentation.

#3 Le 10/06/2013, à 13:38

phlinux

Re : [Résolu] Problème d'import de pkcs#12 dans firefox

Bonjour Titouan et merci pour la réponse.

Je dois dire que je ne suis pas très à l'aise avec ces techniques de certificat.
Par ailleurs, j'ai acheté la semaine dernière le GLMF HS 66 (merci Tiramiseb) pour essayer d'y voir un peu plus clair et c'est en le suivant que j'essaie de monter ma solution: Seuls les utilisateurs (membres de ma famille) possèdant un certificat que mon CA signe peuvent se connecter à mon site (accessible seulement via un port NATé).

En fait, j'ai crée un x509 pour la création de mon propre CA (côté serveur) et m'en suis servi pour signer le certificat généré côté client.
Je ne pense donc pas en avoir crée un côté client.
Au passage merci pour les longueurs de mdp : j'ai bien noté. Est ce que cela concerne aussi les "pass phrase" ?

Il y a sans doute quelque chose que je n'ai pas compris ou mes explications ne sont pas claires.
Par ailleurs, pourquoi alors la même manip n'a t-elle pas posé de problème avec mon client MS XP ?

Pour essayer d'être plus précis, voici ma procédure :

Côté serveur, création du CA

openssl genrsa -des3 -out cakey.pem 4096
openssl req -config openssl.cnf -new -x509 -nodes -sha1 -days 1825 -key cakey.pem -out cacert.pem

Côté client création de la demande de certificat

openssl genrsa -des3 -out phl.key.pem 4096
openssl req -config openssl.cnf -new -key phl.key.pem -out phl.csr.pem

Côté serveur signature du certificat du client et convertion en pkcs#12

openssl ca -config openssl.cnf -policy policy_anything -out phl.cert.pem -infiles phl.csr.pem
openssl pkcs12 -export -inkey phl.key.pem -in phl.cert.pem -out phl.cert.p12 -name "phl"

Côté client chargement du p12 dans firefox.

Au niveau apache2 j'ai:

<VirtualHost *:443>
  ...
  SSLEngine on
  SSLCertificateFile /srv/ssl/phl/phl.cert.pem
  SSLCertificateKeyFile /srv/ssl/phl/phl.nokey.pem
  SSLProtocol all -SSLv2
  SSLCACertificateFile /srv/ssl/cacert.pem

  <Directory /www/photos>
    SSLVerifyClient require
    SSLVerifyDepth 1
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
  ...

Je remarque quelques directives manquantes chez moi par rapport à ton exemple mais sauf avis contraire je ne suis pas certain qu'elles soient indispensables, en tous cas pour l'instant où je suis en simple phase de tests.

Dernière modification par phlinux (Le 10/06/2013, à 13:51)


Ubuntu - Precise Pangolin 64bits
ATI Radeon HD5670

Hors ligne

#4 Le 11/06/2013, à 18:28

phlinux

Re : [Résolu] Problème d'import de pkcs#12 dans firefox

Ok, j'ai trouvé:
j'ai finalement pu voir qu'en retirant l'une des bases locales des certificats (mv ~/.mozilla/firefox/cert8.db ~/.mozilla/firefox/cert8.db.old) celle-ci est reconstruite systématiquement par Firefox, et là, l'import de la pkcs #12 fonctionne correctement.
Une connexion utilisant cette clef sur mon serveur confirme que tout va bien.

J'ai donc simplement laissé firefox recréer la base cert8.db.

Par contre, quid des autres bases cert9.db, key3.db et key4.db ? Sont-ils liés ou chaque fichier est il indépendant ?
Autrement dit, attention s'il doit y avoir une cohérence entre ces fichiers, il faudrait les détruire tous les 4 pour qu'ils soient tous recréés mais à ce moment là je ne sais pas ce qui est perdu.
Pour l'instant ce n'est pas pour moi un problème sur ce portable qui ne me sert qu'aux devs.

Méfiance donc, et avant de faire quoique ce soit, je vous engage à faire (comme d'habitude wink ) une sauvegarde du répertoire à "bricoler" : ~/.mozilla/firefox/xxxxxxxx.default  (xxxxxxx est donné par le fichier ~/.mozilla/firefox/profiles.ini)


Ubuntu - Precise Pangolin 64bits
ATI Radeon HD5670

Hors ligne

#5 Le 11/06/2013, à 18:48

phlinux

Re : [Résolu] Problème d'import de pkcs#12 dans firefox

Pour compléter : la commande
 

certutil -L -d sql:/home/phl/.mozilla/firefox/z535w55y.default/

renvoie bien cette fois :

  Certificate Nickname                              Trust Attributes
                                                    SSL,S/MIME,JAR/XPI
  phl                                               u,u,u

Ubuntu - Precise Pangolin 64bits
ATI Radeon HD5670

Hors ligne