TinyCA
Un article de OpenWikiBSD.
Sommaire |
Installation sous Debian Sarge ou Etch
Pas trop difficile, c'est un paquet officiel :
apt-get install tinyca
Le binaire se nomme /usr/bin/tinyca2.
Usage
Création du certificat racine ( de l'AC)
On commence par créer le certificat racine de la pki : celui de l'AC (autorité de certification)
faites très attention aux points suivants :
- C'est probablement le seul certificat que vous ne pourrez pas changer,révoquer.. Par conséquent, sa durée de validité doit être assez longue pour vous. Ici j'ai pris 10 ans
- Le mot de passe de l'AC est un des points les plus sensibles de votre chaîne de certification; donc en dehors phases de test, pas de mot de passe de 4 lettres commençant par 'to' et finissant par 'to' ;-)
Vous vérifiez que les usages de ce certificat vous conviennent; personnellement je n'ai pas modifieéles valeurs par défaut, à l'exception de l'URL de la CRL (liste de révocation de certificats)
Après avoir validé, le CPU se met à chauffer lors de la génération de la biclé :
Votre certificat est créé :
En voici tous les détails :
Une fois ce certificat racine créé, il faut le publier pour que les clients web l'incorporent à leur magasin de certificats d'autorités racines de confiance.
Sous apache 1.3 il faut décommenter la ligne :
- AddType application/x-x509-ca-cert
et ajouter comme extension le type pem, ce qui donne :
AddType application/x-x509-ca-cert .pem
apachectl stop && apachectl start(ssl)
Et, en cliquant sur le bon lien, vos navigateurs ou courielleurs vont faira apparaitre ce genre de boite de dialogue :
En français ça marche aussi ;-)
A partir de maintenant, plus jamais de message abscons qui inquiète l'utilisateur..
Création d'un certificat de serveur web
Il faut créer une CSR (requête de signature de certificat).
Ca se fait sur le serveur lui-même (c'est plus simple amha) ou par l'interface. dans les deux cas il y aura un fichier (csr ou crt) à recopier en scp.
Le plus important est le Common Name du serveur, son FQDN (son nom complet qualifié) . Vous devez avoir le même résultat dans ce champ et dans une requête http(s) sinon vos navigateurs vont hurler.
Remarquez que j'ai diminué la longueur de clé. Il s'agira d'un compromis sécurité du protocole/surcharge (CPU&bande passante). En tout état de cause, il est inutile de spécifier une longueur de clé supérieure à celle de l'AC,amha.
Vous devez maintenant signer cette requête avec le certificat de l'AC (bouton sign ou clic droit sur le certificat de serveur):
On donne le mot de passe de l'AC ainsi que le nombre de jours de validité du certificat du serveur. (celui-là pourra être modifié relativement facilement).
Le certificat au format .pem est stocké dans $user/.TinyCA/Nom_de_l_AC/newcerts/compteur.pem où compteur est le numéro incrémental du certificat créé.
Pour installer le certificat , vous devez commencer par exporter la clé (clic-droit) puis choisir d'exporter :
* Au format pem
- Sans passphrase
- En incluant le certificat
C'est vraiment important ! without passphrase et include certificate ..
Pour OpenBSD? il faudra exporter la clé ET le certificat (au format PEM en incluant la clé et l'empreinte)
Vous avez droit un joli message d'avertissement :
Où on les place ces fichiers ??
Le résultat doit être copié sur le serveur web/SSL au bon endroit.
- Debian Lenny : Voir là : Apache#Debian_Lenny
- OpenBSD : le fichier XXX-key.pem dans /etc/ssl/private et le fichier XXX-cert.pem dans /etc/ssl
Vérification :
# grep SSLCertificateKeyFile /etc/apache-ssl/httpd.conf SSLCertificateKeyFile /etc/apache-ssl/apache.pem
Révocation d'un certificat de serveur
Plusieurs raisons pourraient entrainer la révocation du certificat de serveur web,ie : la rupture de la chaîne de confiance entre l'AC et le serveur :
- compromission de la clé du serveur
- compromission de la clé de l'AC (là vous êtes assez mal..)
- Changement d'affectation du serveur
- Remplacement du serveur
- Fin des opérations du serveur
- Certificat annulé
....Il s'agit là de la traduction de la boite de dialogue, mais personnellement je confond plusieurs de ces items.
Evidemment il vous faut le mot de passe de l'AC:
Ici j'ai choisi de déclarer le serveur web vieuxweb comme bon pour la casse.
C'est fait le serveur web vieuxweb n'est plus de confiance.
Ne reste plus qu'à publier les bans (pardon la liste de révocation).
CRL
OCSP
| Biblio La source d'info du repondeur OCSP est la crl prédéemment générée.
Publication de la liste de révocation d'un certificat de serveur
Vous devez, depuis l'onglet CA, générer la liste de révocation, en donnant le mot de passe de l'AC et en choisissant un des 3 formats d'export:
- PEM:
- DER:
-TXT:
Deploiement automatique du certificat de l'AC sur votre parc de clients windows
Pour IE
J'ai trouvé l'info | ici, mais comme je suis un peu flemmard, j'ai simplifié et 'clickidromisé le tout' ;-)
- Commencez par télécharger le certificat de l'AC sur la machine locale. Attention, il faudra être admin local.
- Dans une console cmd :certmgr.msc
- Cliquez sur Autorités de certification Racine, onglet Certificats
- Sélectionnez Toutes les taches, puis Importer
- Parcourez l'arborescence et choisissez le .pem que vous venez de télécharger. Par défaut les .pem ne sont pas acceptés, mais ça marche très bien quand même.
- Je laisse le choix par défaut : Tous les certificats dans le magasin suivant :, et Autorités de certification racine de confiance.MAIS vous devez choisir le magasin physique afin de déployer ce certificat pour l'ordinateur local (HKLM) et non dans dans le magasin du l'utilisateur (HKCU).
- Une boite de dialogue vous informe des implications du prochain clic de souris :
- Voila, votre certificat d'AC est dans la machine; reste à l'exporter pour le déployer. Cliquez sur Détails du certificat de votre AC et descndez jusqu'à empreinte numérique. le fingerprint de la clé que vous voyez est le nom sous lequel sera manipulé votre certificat par le magasin Windows. Copiez le dans le pressepapier.
- En ligne de commande : reg export HKCU\Software\Microsoft\SystemCertificates\Root\Certificates\Votre_Empreinte_de_Certificat Mon_AC.reg
Le tout sans espace dans l'empreinte. (ça doit pouvoir se faire sans les effacer à la main..)
Où il vous est répondu que l'opération s'est bien déroulée.
- Autre possibilité: Exporter le bout de ruche avec les outils qui vont bien :
- Ca se termine. Ne reste plus qu'à déployer sur les clients (par GPO, par descente de clés de registre...) le .reg crée.
A la main, ça donne : reg import Mon_AC.reg
J'ai trouvé | certimport qui permet d'automatiser la seconde partie de la manip. Mais comme je ne souhaite pas faire reposer des fonctions cruciales de sécurité sur un soft inconnu, et comme cette seconde partie est aussi rapide par la méthode proposée, je m'en tiendrai là.
Pour Outlook Express
Au moins ça m'aura donné une occasion de l'installer ;-)
Ben, une fois fait pour IE, c'est déja fait.
Pour Firefox
Encore plus facile:
- Vous installez à la main le certificat sur une machine.
- Vous recopiez maintenant le fichier c:\Documents and settings\User\Application Data\Mozilla\Firefox\Profiles\XXXXXYYYY.default\cert8 sur le profil de chacun des utilisateurs de votre réseau.
- On note donc les soucis suivants :
- C'est une méthode bourrin qui écrase la liste sans ajout une AC de manière incrémentale.
- Surtout, c'est lié à l'utilisateur et non à la machine...
Pour ThunderBird
Il faut le refaire, les stockages de Ffox et Tbird sont différents.
Même manipulation que pour Ffox, on change juste le chemin.
















