23/11/2023, 14:44
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
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 (
Script de génération
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
Ceci implique que le
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).
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
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).