Comment chiffrer ses emails avec postfix
Ah, toi aussi, tu as vu depuis quelques temps apparaitre un petit cadenas rouge dans gmail ? C’est aussi mon cas sur un serveur avec Postfix installé…

Ah, toi aussi, tu as vu depuis quelques temps apparaitre un petit cadenas rouge dans gmail ? C’est aussi mon cas sur un serveur avec Postfix installé.
et lorsque tu cliques sur la flèche, stupeur :
Ca veut bien dire ce que ça veut, et ce que ça veut dire c’est que c’est pas bien. Tu as compris ? :v
On peut se moquer hun, mais et toi, postfix chiffre bien tes mails ? Me dit pas que tu envois les mots de passe en clair comme ça ? Bref, on oublie ça vite et on se penche sur l’installation d’un certificat sur notre postfix.
Et si comme pour l’installation du HTTPS au premier épisode de ce blog, on utilise letsencrypt pour signer les certificats ?
Création des certificats :
Pour commencer, on va stopper notre serveur web (apache ou nginx) :
sudo service nginx|apache stop
On va télécharger letsencrypt :
cd /opt
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
Et générer les certificats qui vont bien :
./letsencrypt-auto certonly -d mail.vinvin.dev --rsa-key-size 4096
Dans mon cas, j’ai un sous-domaine « mail » qui est chargé de gérer le serveur mail, à adapter selon votre configuration.
Configuration de Postfix
On part du principe que votre postfix fonctionne déjà mais qu’il ne chiffre pas vos messages.
On va donc ajouter ces quelques directives (smtp et smtpd le demon) au fichier « /etc/postfix/main.cf »
# TLS parameters
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtpd_tls_key_file = /etc/letsencrypt/live/mail.vinvin.dev/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.vinvin.dev/fullchain.pem
smtpd_tls_CAfile = /etc/letsencrypt/live/mail.vinvin.dev/cert.pem
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# on active TLS pour les connexions sortantes
smtp_tls_security_level = may
# NB sur un postfix antérieur à 2.3, c'est smtp_use_tls = yes
smtp_tls_key_file = /etc/letsencrypt/live/mail.vinvin.dev/privkey.pem
smtp_tls_cert_file = /etc/letsencrypt/live/mail.vinvin.dev/fullchain.pem
smtp_tls_CAfile = /etc/letsencrypt/live/mail.vinvin.dev/cert.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_enforce_peername = no
Pense à adapter les différents chemin pour le certificat. On peut remarquer ici que letsencrypt nous génère 3 fichiers : la clé, le certificat et le Certificat Authority (CA) alors que dans le tuto précédent, tu as utilisé que la clé et le certificat.
On redémarre postfix :
sudo service postfix restart
Un petit test :
Voici venu le temps (ahaha tu as cru que c’était la chanson de Casimir), donc le temps de faire un petit test d’envoi :
mail -r contact@vinvin.dev adresseEmail@gmail.com
Success ! Plus de cadenas rouge et à nous le chiffrage TLS standard 😉
Tu peux aussi tester via le site : ssl-tools
Dans un prochain épisode, mise en place du DKIM et SPF pour éviter d’être considéré comme spammeur.