Bon, tout ça est devenu à moitié obsolète grâce à let's encrypt.

sudo apt-get install letsencrypt

Il y a un script pour le renouvellement des certificats dans /etc/letsencrypt/ . À rester.

2021-12-05 Lomanic: Il n'y a pas besoin de script, certbot peut tout faire, comme ceci (voir spaceapi pour plus de détails) :

sudo certbot certonly --webroot -w /var/www/fuz.re/site -d fuz.re -d www.fuz.re --deploy-hook '/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf && service lighttpd reload; cp "$RENEWED_LINEAGE/fullchain.pem" /etc/exim4/fuz.re.crt && cp "$RENEWED_LINEAGE/privkey.pem" /etc/exim4/fuz.re.key'

J'ai utilisé ce tutoriel pour générer les clefs, obtenir des certificats et les installer pour les différents services : https://nipil.org/2014/06/10/renouvellement-certificats.html
En résumé :
<code>mkdir /root/certs && cd /root/certs openssl genrsa 4096 > `hostname`-`date '+%FT%T'`.key chmod 400 *.key openssl req -new -out jack.csr -key aspire-2016-03-13T23:14:56.key You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. —– Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:IdF Locality Name (eg, city) []:Paris Organization Name (eg, company) [Internet Widgits Pty Ltd]:jack.tf Organizational Unit Name (eg, section) []: Common Name (e.g. server FQDN or YOUR name) []:jack.tf Email Address []:hi@jack.tf Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: </code> Créer un compte si nécessaire sur startssl.com, s'authentifier en demandant un mot de passe temporaire (nécessaire à chaque fois). Valider le domaine jack.tf ou un sous-domaine (en mode gratuit il faut les faire un par un). La vérification s'effectue par l'envoi d'un email à postmaster@jack.tf ou d'autres noms prédéfinis. Il faut avoir accès à cet email ou au serveur email tout simplement.
Une fois le domaine vérifier, cliquer dans l'onglet “Certificates Wizard”.
Laisser le choix “Web Server SSL/TLS Certificate” et cliquer sur Continuer.
Entrer le domaine (validé plus haut) dans le premier cadre.
Descendre et coller le CSR dans le deuxième cadre “Paste your CSR”. CSR obtenu en tapant : <code> openssl req -in jack.csr -text</code> Envoyer le tout et télécharger le zip contenant les certificats. Quelques changements par rapport au tuto :
Dans les zips envoyés par startssl.com après enregistrement des domaines il y a les certificats root et intermédiaires (1_Intermediate.crt et 1_root_bundle.crt) qu'on doit utiliser après plutôt que de faire des wget qui sont obsolètes. Ces deux fichiers sont identiques.
Pour dovecot, après avoir demandé des certificats pour mail.jack.tf : * <code>cp /root/certs/mail.jack.tf/2_mail.jack.tf.crt /etc/dovecot/dovecot.pem && chown dovecot:dovecot dovecot.pem</code> puis copier ou faire un lien de la clef privée dans /etc/dovecot/private/
<code>ln -s /root/certs/aspire-2016-03-13T23\:14\:56.key /etc/dovecot/private/dovecot.pem</code> Configurer dovecot pour utiliser ces fichiers, décommenter les lignes suivantes dans /etc/dovecot/conf.d/10-ssl.conf et s'assurer que ssl = yes est présent en début de fichier: <code>ssl_cert = </etc/dovecot/dovecot.pem ssl_key = </etc/dovecot/private/dovecot.pem</code> Puis redémarrer dovecot Pour lighttpd, éditer lighttpd.conf et ajouter : * <code>$HTTP[“host”] == “jack.tf” { $SERVER[“socket”] == “:443” { ssl.engine = “enable” ssl.ca-file = “/etc/lighttpd/certs/authority.pem” # 1_root_bundle.pem envoyé par startssl.com ssl.pemfile = “/etc/lighttpd/certs/lighttpd.pem” # concaténation de la clef privée et du certificat jack.tf.pem } }</code> Pour Exim4 : <code>cp /root/certs/2_jack.tf.crt /etc/exim4/exim.crt cp /root/certs/aspire-2016-03-13T23\:14\:56.key /etc/exim4/exim.key chown root:Debian-exim /etc/exim4/exim.key chmod 440 /etc/exim4/exim.key</code>