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