SSL : Gestion des certificats
Contents
1 Problématique
Après un an de bon et loyaux services, votre serveur Courier (pop3 ou imap) vous lâche pour un simple problème SSL ! Et oui, au bout d'un an ça expire !
2 Préparation
Il va donc falloir en regénérer de nouveaux. Pour ça, nous allons nous placer au bon endroit :
cd /etc/courier/
Ensuite, on supprime l'ancien :
rm pop3d.pem
3 Génération
3.1 Automatique
Si tous les ans, vous décidez de renouveller de façon simple ce certificat, alors éditez le fichier ".cnf" et renseignez le correctement. Voici un exemple :
RANDFILE = /usr/lib/courier/pop3d.rand
[ req ]
default_bits = 1024 # Mettez 2056 si vous êtes parano
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no
[ req_dn ]
C=FR
ST=France
L=Paris
O=Société
OU=Managed by Deimos System Engineer
CN=société.fr
emailAddress=admin@société.fr
[ cert_type ]
nsCertType = server
Ensuite, on lance la commande de régénération du certificat :
/usr/lib/courier/mkpop3dcert
On devrait avoir quelquechose comme ceci :
generating a 1024 bit RSA private key ...........................++++++ .++++++ writing new private key to '/usr/lib/courier/imapd.pem' ----- 1024 semi-random bytes loaded Generating DH parameters, 512 bit long safe prime, generator 2 This is going to take a long time .....................+.........................+..........+..................... ....+...............+........+............................................+..+.. .................................+....+................................+...+.... ....................+........................................................... .+...........................+..........+........................+.............. ............+............++*++*++*++*++*++*
3.2 Manuelle
Pour créer sa clef à la mano, voici la commande qui va permettre de générer la clef :
openssl genrsa -out pop3d.pem 1024
Remplacez pop3.pem par imap.pem dans le cas de l'imap ( a adapter).
1024 correspond au nombre de bits d'encryption. Monter si nécessaire.
Ensuite, 2 options s'offrent à nous :
- L'auto-signature
- Signature de la part d'une autorité
3.2.1 Auto-signature
L'option -x509 sert à autosigner :
openssl req -new -days 365 -key pop3d.pem -x509 -out pop3d.crt
- 365 : nombre de jours avant expiration
- pop3d.pem : certificat à signer
- pop3d.crt : certificat faisant autorité
3.2.2 Signature de la part d'une autorité
Voilà un exemple :
openssl req -new -days 365 -key pop3d.pem -out pop3d.crt
- 365 : nombre de jours avant expiration
- pop3d.pem : certificat à signer
- pop3d.crt : certificat faisant autorité, il faut insérer ici le certificat fourni par l'autorité
4 Application des nouveaux certificats
Pour appliquer ces nouveaux certificats, il suffit de redémarrer les services appropriés. Ex :
/etc/init.d/courier-pop-ssl restart
5 Modification du script de génération automatique des certificats
Comme nous l'avons vu plus haut pour la génération automatique des certificats, on lance un script. Mais vi nous voulons changer un peu le contenu pour avoir par exemple 2 ou 3 ans de surcis, c'est pratique, même si ce n'est pas recommandé.
Editons alors le fichier "/usr/lib/courier/mkpop3dcert" :
test -x /usr/bin/openssl || exit 0 prefix="/usr" if test -f /usr/lib/courier/popd.pem then echo "/usr/lib/courier/popd.pem already exists." exit 1 fi umask 077 cp /dev/null /usr/lib/courier/popd.pem chmod 600 /usr/lib/courier/popd.pem chown daemon /usr/lib/courier/popd.pem cleanup() { rm -f /usr/lib/courier/popd.pem rm -f /usr/lib/courier/popd.rand exit 1 } cd /usr/lib/courier dd if=/dev/urandom of=/usr/lib/courier/popd.rand count=1 2>/dev/null /usr/bin/openssl req -new -x509 -days 365 -nodes \ -config /etc/courier/popd.cnf -out /usr/lib/courier/popd.pem -keyout /usr/lib/courier/popd.pem || cleanup /usr/bin/openssl gendh -rand /usr/lib/courier/popd.rand 512 >>/usr/lib/courier/popd.pem || cleanup /usr/bin/openssl x509 -subject -dates -fingerprint -noout -in /usr/lib/courier/popd.pem || cleanup rm -f /usr/lib/courier/popd.rand
Maintenant que vous êtes arrivé là, vous devez mieux cerner les options à modifier.