PKI, PKI, oh ! PKI, PKI, ah !

« Mais qu’est ce tu chiffres DouDou dis donc ? PKI, PKI, c’est bon, c’est bon… »

Bon d’accord.. :oops:

Désolé pour la touche Tarte à la crème et nez rouge, ça m’a échappé :-?

La gestion d’une PKI n’est pas toujours évidente.

On se retrouve vite avec une usine à gaz qui si elle répond a des besoins en entreprise (exemple openCA qui est pour moi un outil très puissant, opensource et parfaitement utilisable en production), pour sa petite gestion personnelle, c’est un peu lourd.

Vous gérez donc vos certificats a la mimine, a coup d’openssl dans tout les sens en stockant a gauche et a droite, et mer…. ou j’ai mis mon CA Root… ou alors grace aux quelques scripts fournis en standard avec OpenVPN par exemple.

Bref, heureusement il existe un petit programme qui répond parfaitement à ce besoin; il s’agit d’easyCA.

Vous trouverez les sources ICI .

Il n’est plus maintenu depuis 2005 mais croyez moi, ce petit programme en simple script shell est une bombe et parfaitement utilisable.

J’ai contacté Ferry, l’auteur du script qui malheureusement semble un peu débordé pour apporter quelques améliorations.

Soit, c’est bien parce que c’est vous, je vous livre donc MA version d’easyCA avec quelques fonctions rajoutées (OCSP, choix du type de certificat serveur/client..)

easyCA Version GuiguiAbloc

Elle est bien entendu perfectible mais convient parfaitement à la gestion de ma pki personnelle.

Le fonctionnement est on ne peut plus basique.

Vous créez un répertoire ou vous déposer le easyCA.sh et l’openssl.cnf (que vous CONFIGUREZ avant !!!). (ps : pensez a supprimez la ligne « # !!!!! remove this line after configuration as it is NOT_CONFIGURED yet !!! »

Les champs sont suffisamment bien commentés pour que vous compreniez les champs à renseigner.

Ne reste qu’a lancer le easyca.sh :

=====================================================================
                      Certificate Management System
      easyCA version 0.9(6) by Ferry Kemps and Guiguiabloc
                              GPL Licensed
=====================================================================
 
   1) Sign a Certificate Signing Request (PKCS#10)
   2) Create a Server Certificate (PEM SelfSigned)
   3) Create a Client Certificate (PKCS#12)
   4) Create a Certificate Signing Request
   5) Generate Certificate Revocation List (CRL)
   6) List, Display and Revoke Certificates
 
   I) Initialize Root Certificate Authority (CA)
   O) Initialize OCSP Server Certificate
   B) Backup & Restore the Certificate environment
   R) Reinstall easyCA (erase)
 
 ==> Make your choice [none]:

Commencer par initaliser votre Certificat d’Autorité (I)

Puis a vous la création et la gestion de vos certificats :-)

-----------------------------------------------------------------------
--------------- Generate Certificate Signing Request ------------------
-----------------------------------------------------------------------
 
Enter Certificate CN (Common name|FQDN) like www.example.com [none]: blog.guiguiabloc.fr
Generating a 1024 bit RSA private key
......................++++++
..++++++
writing new private key to './private/blog.guiguiabloc.fr-key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [NL]:FR
State or Province Name (full name) [Gelderland]:Bretagne
Locality Name (eg, city) [Arnhem]:GuiguiTown
Organization Name (eg, company) [Your Company Name]:Guiguiabloc
Organizational Unit Name (eg, section) [HQ]:Guiguiabloc
Common Name (eg, your name or your server's hostname) []:blog.guiguiabloc.fr
Email Address [postmaster@domain.ext]:guiguiabloc@devnull
 
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
 
Certificate Signing Request (CSR) stored as: ./csr/blog.guiguiabloc.fr.csr
Certificate private-key stored as: ./private/blog.guiguiabloc.fr-key.pem
Press [enter] to continue
-----------------------------------------------------------------------
--------------- Certifiace Signing Request handling -------------------
-----------------------------------------------------------------------
 
 (CSR request files should be copied into directory: ./csr)
 
1: blog.guiguiabloc.fr.csr
 
 ==> Select the CSR to sign [none]: 1
 
 ==> Add OCSP Extension to Certificate ? [y/N]: y
 
 ==> Select the Usage Key [server|client|none]: server

Bref, je vous laisse jouer avec, vous verrez, cela vous simplifiera la vie.

Concernant l’extension OCSP, ce sera le sujet d’un prochain billet ou comment gérer la révocation de vos certificats, on-line :-D

Ce billet a été posté dans sécurité et taggé , , . Bookmark ce permalink.

6 commentaires sur “PKI, PKI, oh ! PKI, PKI, ah !

  1. Milles excuses, j’ai regardé (je n’avais pas fait cela depuis longtemps) et tinyca est une appli graphique…

  2. Génial ce script parce que openssl peut être vite prise de tête (tant de commandes et d’options…)

    Petite question de béotien, dans les exemples ci-dessus tu initialise l’autorité de certification (cmde I) puis réalise une CSR (cmde 4) que tu signe (cmde 1), c’est bien cela ?

    Avec ce mécanisme tu dispose d’un certificat (*.crt dans certs) et d’une clé privée (*.pem dans private) que tu paramétrer dans ton serveur Web

    Par contre si on utilise la commande 2 (certificat auto-signé) on ne dispose que du certificat et pas de la clé ce qui ne permet de l’utiliser avec un serveur web

    Ai je bien compris ?

    (Désolé pour ce déterrage d’article, 2008 qd même)