Communauté Eggdrop

Version complète : Génération de certificats SSL
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
J'ai décidé d'utiliser des certificats SSL pour identifier mes eggdrops mais je me suis rendu compte que je ne pouvais pas utiliser le même certificat pour tous, car NickServ considère qu'un certificat n'appartient qu'à un seul utilisateur.
Autrement dit, si vous utilisez eggdrop.key et eggdrop.crt pour tous, ils seront reconnus comme le premier utilisateur ayant ajouté ce certificat.

J'ai donc décidé de créer un certificat par eggdrop. Et comme je suis fainéant, j'ai préféré automatiser ça.

Modification de eggdrop.conf
Chaque eggdrop a sa propre configuration (nom_d_eggdrop.conf) qui appelle eggdrop.conf qui est une légère modification du eggdrop.conf original. J'ai modifié deux lignes:
tcl
set ssl-privatekey "${username}.key"
set ssl-certificate "${username}.crt"



Script de génération
Code :
#!/bin/bash
HOMEDIR=/home/moi/
EGGVER=1.9.5
cd ${HOMEDIR}eggdrop/
for f in *.conf
do
   uname=${f%.conf}
   if [[ "$uname" != eggdrop* ]]; then
      /usr/bin/openssl req -new -x509 -nodes -days 365 -keyout ${HOMEDIR}eggdrop/${uname}.key -out ${HOMEDIR}eggdrop/${uname}.crt -config ${HOMEDIR}eggdrop-${EGGVER}/ssl.conf -subj "/O=Eggdrop.fr/OU=Eggdrop/CN=Self-generated Eggdrop Certificate"
   fi
done
Ce script, à exécuter depuis le répertoire où sont installés les eggdrops, va tout simplement lister les .conf disponibles (en écartant les deux fichiers eggdrop.conf et eggdrop-basic.conf) et générer de manière non-interactive les doublets crt/key en utilisant le nom_d_eggdrop pour les nommer.

Ceci implique que le $username de l'eggdrop doit être identique au nom de son fichier de configuration (en respectant la casse).

Comme les certificats ne sont valides qu'un an, il suffit de créer une entrée crontab pour le lancer tous les ans (ce qui explique tous les chemins complets dans le script).