Dernière mise à jour le 21/12/2012

Installer des certificats auto-signés sur vos hosts web


Honnêtement je ne pense pas que vous aimeriez qu'on lise ce que vous faites derrière votre ordinateur par dessus votre épaule. dans un réseau c'est pire: quelqu'un peut le lire sans même que vous ne soyez au courant...
Dans la plupart des cas, on se dit que ce n'est pas grave que ce que vous écrivez n'est pas vaiment important et que ca n'intéressera personne!
FAUX, ARCHI FAUX, vous vous retrouverez forcément un jour ou l'autre à envoyer par mail un document très personnel (une fiche de paie, un RIB) ou encore un commentaire acerbe sur votre chef par votre webchat personnel (pour moi c'est mini jappix sous Roundcube).

Bref, vous avez envie de crypter tous vos echanges de données avec votre serveur perso. Après, ce qui se passe entre le serveur web et le reste des services avec lesquels il discute directement (un serveur mail par exemple), est un autre problème, je ne vais vous parler que de ce qui transite de votre client web à votre serveur.
Pour crypter des données sur internet on utilise souvent un couple de clef asymmétrique. Assymmétrique car la clef qui sert à chiffrer est différente de celle qui sert à déchiffrer. En fait souvent on échange les premières informations de reconnaissance (notamment l'identité du serveur) avec le couple de clef assymetrique puis on continue la conversation avec un couple de clef symmétrique ce qui permet un traitement de l'information + rapide.
Le client (le navigateur) va sur un site sécurisé et doit récuperer la clef publique du serveur pour lui envoyer une clef symmetrique pour echanger des informations. Il doit d'abord s'assurer que la clef publique est bien celle du serveur que vous contactez. Pour cela on fait appel à une autorité de certification qui apose son sceau à la clef publique du site. Imaginons qu'un pirate serait capable de falsifier la clef lui permettant ainsi de dechiffer les infos confidentielles que vous tentiez de transmettre au serveur.
La clef est là sécurité de plus qui vous assure de l'identité du site d'en face!
Une fois la chose expliquée avec les mains et plutôt que de faire une mauvaise parodie de ce que vous trouverez en mieux sur d'autres sites, je préfère vous lister les ressources que j'ai utilisées pour chiffrer l'ensemble de mes sites web. Quand je dis site web, je parle de l'ensemble des services que me rend mon serveur à distance...

La principale source d'inspiration est le site de Debian Administration. Pour gérer plusieurs virtual host sous apache, rien de mieux que d'avoir un certificat générique, ce lien est pas mal! Il lui manque cependant une directive importante, la directive "copy_extensions = copy" sous la section [ CA_default ], comme expliqué ici dans les commentaires ou encore ici.



[LutiX.org écrit sous Vim et herbergé @Home sur une Debian Squeeze par Apache et PHP5]