Auteur : Didier Misson
• 16 juin 2008

CAcert est une autorité de certification gratuite, vous permettant de générer des certificats SSL. Dans le cas qui m’intéresse, je vais générer via le site de CAcert des certificats SSL valables pour plusieurs domaines.

cacert150x60.png

Nous avons vu comment générer un certificat SSL multisites auto-signé. Cela permet d’avoir sur un même serveur Apache (ou Exim ou autre) qui n’a qu’une seule adresse IP, un certificat SSL qui sera reconnu comme valable pour plusieurs sites en https (ou en IMAPS).

Le problème est que ce certificat est auto-signé. Il ne garanti aucunement que vos sites soient sains, qu’ils ne soient pas rempli de pièges, spywares, etc etc… Et surtout, il ne garanti pas que votre site est bien celui que vous affirmez !

En effet, cela revient à dire « je, sous-signé Mr Machin, certifie que mes sites sont corrects et authentiques » … Autrement dit, à vous faire confiance à 100%. Pour quelqu’un qui ne vous connaît pas… il y a de quoi hésiter.

L’idée est donc de faire établir ce certificat par une autorité connu, qui va dire « oui, je déclare que les sites de Mr Machin sont authentiques et fiables » (je simplifie, car authentique ne veut pas nécessairement dire sain et fiable, mais il est bien connu qu’un site usurpant l’identité d’un autre le fait toujours pour vous piéger !).

Les sociétés les plus connues sont Verisign et Thawte . Ces sociétés prennent soin de vérifier votre identité pour éviter les usurpations. Mais voilà… ils vendent leur service très cher. Un certificat SSL 128 bits coûte $ 249 par an chez Thawte, et beaucoup plus pour certains types de certificats… Pas cher pour une grosse société ou un site eCommerce important, mais bien trop pour nous qui gérons notre petit site web ou serveur mails !

cacert150x60.png

Comme souvent dans le libre, ça ne pouvait continuer comme ça ! Certaines personnes sont parties de la question « Pourquoi devrait-on payer cher pour avoir la sécurité ? » et ont créés CACert. CAcert « vend » à un juste prix ces certificats… càd qu’ils sont GRATUITS !

Evidemment, pas de réel support. Vous êtes supposé savoir ce que vous faites et gérer vous même vos demandes de certificats.

cacert150x60.png

Comment est gérée la sécurité alors qu’on fait tout soi-même ?

Car il n’y a pas de contrôle physique (téléphone, confirmation écrite, vérification d’adresses) pour prouver que vous demandez des certificats pour des sites VOUS appartenant bien ? (sinon, vous pourriez demander un certificat signé pour, au hasard, www.laposte.fr et ensuite faire un site authentifié avec un certificat valable !). Ce genre de traitement serait beaucoup trop lourd et il faudrait du personnel… Impossible…

D’abord, vous devez vous enregistrer sur le site de CAcert. Vous pouvez ensuite créer des certificats valables 6 mois maximum. C’est déjà bien, mais un peu contraignant.

Si vous désirez pouvoir créer des certificats valables 2 ans, vous devez vous faire parrainer en allant à une « CAcert assurance » party. Il y en a régulièrement (par exemple, il y en a eu au Fosdem à Bruxelles).

En vous présentant en personne, avec 2 pièces d’identité (carte, visa, permis de conduire), vous prouvez donc que vous êtes bien la personne que vous avez déclaré être sur le site web. A chaque personne qui vous authentifie, vous obtenez des points (en général 10) et quand vous en avez 100, vous obtenez le droit de créer des certificats valables 2 ans. C’est nettement mieux :-)

cacert150x60.png

Malgré tout, qu’est ce qui vous empêcherait de créer des certificats pour un site ne vous appartenant pas, faire passer un de vos sites pour ce site et tromper les utilisateurs ?

Évidemment, CAcert peut révoquer des certificats et bloquer votre compte si des plaintes arrivaient chez eux, mais ce serait un peu tard..

Lors de cette création, CAcert envoie un mail de vérification à une adresse mail de CE domaine (webmaster@mondomaine.be par exemple) et ce n’est qu’après avoir suivi un lien fourni dans ce mail que ce domaine est ajouté dans la liste de vos domaines, et que vous pouvez créer des certificats via le site de CAcert. Évidemment, si le domaine ne vous appartient pas, vous n’aurez certainement pas accès aux mails du domaine, donc pas moyen d’usurper l’identité du site.

cacert150x60.png

Maintenant, que vaut la certification de CAcert ?

  • Le propriétaire d’un site authentifié par CAcert a quand même passé quelques étapes de sécurité
  • Il est connu. Il a rencontré physiquement plusieures personnes faisant parties de la communauté CAcert : on est sorti du monde virtuel pour avoir une authentification dans le monde réel
  • Ses noms et adresses sont vérifiées (carte d’identité, visa, permis) : en cas de problème, en cas d’arnaque, de sites illégaux, etc, on peut donc le retrouver. Si nécessaire, la police obtiendra directement les coordonnées de la personne qui aurait généré le certificat d’un site illégal
  • Le certificat est généré par CAcert, qui peut le révoquer si nécessaire
  • Pour un utilisateur, c’est nettement mieux qu’un certificat auto-signé (« j’affirme que mon site est authentique »… ça ne fait pas très sérieux)

Malheureusement, CAcert n’est pas connu comme les autres sociétés de certification commerciales… D’origine, ni Ms Internet Explorer, ni Opera, ni même Firefox ne connaissaient CAcert, et ils vous donnent un message d’alerte « autorité de certification inconnue » :-(

Il est heureusement possible d’ajouter le certificat racine de CAcert dans Firefox, ou Thunderbird, pour que cette autorité soit reconnue. Ensuite, tous les sites (ou serveurs mails) signés avec des certificats CAcert passeront sans problème.

Cette étape, de devoir ajouter le certificat racine de CAcert est génante, mais malgré tout plus sécurisante pour les utilisateurs que de devoir accepté votre ou vos certificats auto-signés sans vous connaitre !

cacert150x60.png

Après la théorie, passons à la pratique.

Je suppose que vous vous êtes déjà enregistré sur le site de CAcert, que vous êtes bien propriétaire ou gestionnaire des domaines pour lesquels vous voulez demander un certificat, et que vous avez accès à une des boîtes mails standard (webmaster@mondomaine.be par exemple) ou que le gestionnaire peut vous transmettre ces mails.

Comment générer un certificat SSL mutil-sites ?

La génération se fait toujours sur le site de CAcert, mais ce que nous voulons ne se trouve pas dans une page et un formulaire standard.

La documentation suivie est celle du site CAcert lui-même. Cette documentation cite plusieurs façons d’arriver au but voulu, mais seule la solution 3 « Certificate with 1 Common name + 2 Subject Alt Name » fonctionne correctement et est acceptée par tous les navigateurs !

A la fin de la page, vous trouverez le script scr.sh . Recopiez le ou téléchargez le. N’oubliez pas de le rendre exécutable :

wget http://guillaume.romagny.free.fr/evaldo/csr.sh
chmod u+x csr.sh

et lancez ce script :

./csr.sh
Private Key and Certificate Signing Request Generator
This script was designed to suit the request format needed by
the CAcert Certificate Authority. www.CAcert.org

Short Hostname (ie. imap big_srv www2): www.misson.net
FQDN/CommonName (ie. www.example.com) : www.misson.net
Type SubjectAltNames for the certificate, one per line. Enter a blank line to finish
SubjectAltName: DNS:webmail.misson.net
SubjectAltName: DNS:didier.misson.net
SubjectAltName: DNS:www.libre-pc.be
SubjectAltName: DNS:www.arthur-deco.be
SubjectAltName: DNS:www.les-objets-de-maman.be
SubjectAltName: DNS:
Running OpenSSL...
Generating a 2048 bit RSA private key
................................+++
..........................................................................................+++
writing new private key to '/home/didier/www.misson.net_privatekey.pem'
-----
Copy the following Certificate Request and paste into CAcert website to obtain a Certificate.
When you receive your certificate, you 'should' name it something like www.misson.net_server.pem

-----BEGIN CERTIFICATE REQUEST-----
MIIC5DCCAcwCAQAwGTEXMBUGA1UEAxMOd3d3Lm1pc3Nvbi5uZXQwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtCbvSviyDHM47aRvAQ8LVUjGhpE+bAI0d
...
mwit0zAC/11tW6RNVzdxZiHys5HixqhB
-----END CERTIFICATE REQUEST-----

The Certificate request is also available in /home/didier/www.misson.net_csr.pem
The Private Key is stored in /home/didier/www.misson.net_privatekey.pem

Il reste à aller sur le site de CAcert, à générer un nouveau certificat de domaine (certificat racine de classe 3), et recopier votre « Certificate Signing Request » (la partie en hexadécimal) dans la zone prévue pour.

CAcert vous affiche alors votre certificat serveur. Il vous envoie aussi un mail permettant de le retrouver si nécessaire.

Recopiez le et sauvez le dans un fichier, par exemple le nom conseillé :

vi  www.misson.net_server.pem

et coller le code hexa que vous avez copié depuis le site CAcert.

Transférer maintenant vos 2 certificats, le « private » et le « server » sur votre serveur Web (ou mails) si vous n’avez pas exécuter cette procédure sur le serveur lui-même. Faites le par un moyen sécurisé ! En SSH par exemple (scp). FTP n’est pas vraiment la bonne solution car tout est en clair.

La configuration exacte dépend de votre serveur : Apache2 ou autre serveur Web, serveurs mails, etc…  ;-)

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Identi.ca
  • MySpace
  • Netvibes
  • Technorati
  • Twitter
  • email
  • Wikio FR
  • LinkedIn
  • RSS
  • Add to favorites
Catégorie: Internet, Serveurs | Tags : , , ,
Vous pouvez suivre toutes les réponses à à ce billet via le flux RSS 2.0. Vous pouvez laisser une réponse, ou un rétrolien depuis votre propre site.
Laisser un commentaire