Locked History Actions

PKI

Description

Vulture-PKI permet la génération de certificat x509v3.

Principalement destinée à la génération de certificats dédiés à l'authentification web (notamment via la méthode d'authentification par certificat client du reverse proxy Vulture), Vulture-PKI génère néanmoins des certificats compatibles avec d'autres applications respectant le standard x509v3 (telle que OpenVPN par exemple).

Vulture-PKI gère :

  • le renouvellement des certificats
  • les listes de révocation
  • l'export CSV de la liste des certificats
  • le mode décentralisé (les clés sont générées sur des supports matériel)

Vulture-PKI ne gère pas encore :

  • les demandes d'enregistrement (directement par les utilisateurs eux-même)
  • la publication (LDAP)

Installation

Debian

dpkg -i http://vulture.open-source.fr/download/pki/debian/<arch>/vulture-pki_<version>_<arch>.deb

Distributions RPM

rpmbuild --rebuild --target i686 http://vulture.open-source.fr/download/SRPMS/vulture-XX.src.rpm
rpm -i vulture-pki-XX.i686.rpm
/usr/sbin/httpd -f /opt/INTRINsec/vulture-pki/conf/pki.conf

Une très bonne documentation pour l'installation sur une distribution type RPM : http://www-public.int-evry.fr/~procacci/wiki/bin/view/Documentations/PKIinstallVulturepki

Gentoo

emerge dev-python/django dev-python/pysqlite dev-python/python-ldap dev-db/sqlite

install pyOpenSSL with thoses 3 patchs :
 * http://arnaud.desmons.free.fr/pyOpenSSL-0.6-pkcs12.patch
 * http://arnaud.desmons.free.fr/pyOpenSSL-0.6-pkcs12_cafile.patch
 * http://arnaud.desmons.free.fr/pyOpenSSL-0.6-crl.patch

tar vxfj vulture-X.XX.tar.bz2
cd vulture-X.XX
cp -r pki /tmp/www
cd /tmp/www
python ./manage.py syncdb
python ./manage.py runserver

Configuration

Création d'un certificat d'AC

Pour créer un certificat d'AC, executer la commande suivante ( le fichier openssl.cnf est téléchargeable sur http://vulture.open-source.fr/download/samples/openssl.cnf ) :

openssl req -x509 -newkey rsa:1024 -batch -out cacert.pem -keyout cacert.key\
       -nodes -config openssl.cnf -extensions v3_ca

Création d'un profil de certificat

Il s'agit d'utiliser cacert.pem et cacert.key créé précedement pour créer un profil de certificat. Se connecter sur https://localhost:9191 et s'authentifier en utilisant admin/admin





Puis se rendre dans le menu "Profils" pour ajouter un profil :



Utilisation

Création d'un certificat

Création d'un certificat sur support matériel

Pré-requis

Pour profiter du mode décentralisé de vulture-pki vous devez :

  • utiliser un navigateur compatible avec la balise HTML keygen (c'est à dire Firefox, Chrome, Opera)
  • posséder un token ou une carte à puce reconnue par votre navigateur (eToken d'Aladdin par exemple)
  • cette fonctionnalité n'est disponible pour le moment uniquement dans la version de développement (bzr co lp:vulture)

Procédure

L'option "décentralisé" doit être sélectionnée dans le profil de certificat.

Vous créez un certificat en suivant le processus normal (en utilisant un navigateur conforme aux pré-requis ci-dessus) :

Une deuxième étape vous propose alors de saisir le numéro de série du token. Après avoir cliqué sur "Envoyer", le navigateur vous demande de sélectionner le support à utiliser pour générer la clé. Dans notre cas nous sélectionnons eToken :

Le navigateur indique que la clé est en cours de génération par le token :

Le client d'administration du token confirme qu'une clé a bien été générée par le token mais qu'elle est orpheline (associé à aucun certificat).

Le certificat vient d'être généré et signé. Pour l'inclure dans le token (qui ne contient pour le moment qu'une clé orpheline) cliquez sur l'icone de téléchargement du certificat.

Le navigateur détecte alors pour nous que le certificat correspond à la clé généré par le token et insère le certificat dans le token.

Le client d'administration du token nous indique bien que le certificat est maintenant contenu dans le token et associé à la clé.

Nous pouvons utiliser ce certificat client pour de l'authentification web notamment via un navigateur sachant dialoguer avec le token ou la carte à puce utilisé.

Envoie par mail d'un certificat

Il suffit pour cela de cliquer sur l'icône représentant une enveloppe dans la liste des certificats (encadrées en rouge).





Un mot de passe est proposé (il apparaitra dans le mail d'accompagnement du certificat si l'option a été activée dans le profil). Cliquer sur envoyer.



Insertion d'un certificat dans un navigateur

Si vous souhaitez savoir comment inserer le certificat obtenu dans votre navigateur ou si vous souhaitez aider vos utilisateurs à inserer eux-même leur certificat vous pouvez consulter ce document : aide.pdf

Intégration avec le reverse proxy Vulture

Utilisation des CRL

Il est possible de revoquer un certificat dans la liste des certificats en utilisant l'icone encadrée en rouge ci-dessous.





Cela a pour effet de mettre un jour un fichier de CRL à l'emplacement où il a été défini dans la configuration du profil (dans notre exemple /tmp/vulture-pki.crl). Il faut ensuite un moyen de "pousser" (en ssh par exemple) ce fichier sur le reverse proxy de manière à l'utiliser tel que décrit dans la documentation de Vulture.
Cf http://vulture.open-source.fr/wiki/Documentation#head-dd2a29fa9879f34a766d5e703503c7eb1c0083fb

Création d'ACL par application web

En utilisant une méthode d'authentification de type PKI dans Vulture, il est possible de gérer des ACL sur chaque application web utilisant cette authentification.
Cf http://vulture.open-source.fr/wiki/Documentation#head-82fb59a084c9e4ffeec13193c926e8fd09d86def