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 [[projets:fuz:spaceapi#deployment|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é :\\
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 []:
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 :
openssl req -in jack.csr -text
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 :
* cp /root/certs/mail.jack.tf/2_mail.jack.tf.crt /etc/dovecot/dovecot.pem && chown dovecot:dovecot dovecot.pem
puis copier ou faire un lien de la clef privée dans /etc/dovecot/private/ \\
ln -s /root/certs/aspire-2016-03-13T23\:14\:56.key /etc/dovecot/private/dovecot.pem
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:
ssl_cert =
Puis redémarrer dovecot
Pour lighttpd, éditer lighttpd.conf et ajouter :
* $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
}
}
Pour Exim4 :
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