Le même certificat Let’s Encrypt qui sécurise votre site web peut aussi chiffrer vos connexions de messagerie. Ce guide couvre la configuration TLS pour les serveurs de messagerie les plus courants.
Pourquoi l’e-mail a besoin de TLS
Sans TLS, le trafic e-mail (y compris les mots de passe et le contenu des messages) est envoyé en texte clair :
- SMTP (envoi de courrier) — port 25/587 non chiffré par défaut
- IMAP (lecture de courrier) — port 143 non chiffré par défaut
- POP3 (lecture de courrier) — port 110 non chiffré par défaut
TLS chiffre ces connexions de la même manière que HTTPS chiffre le trafic web. Les clients de messagerie modernes exigent TLS et avertissent les utilisateurs des connexions non chiffrées.
Configuration du certificat
Vous pouvez utiliser les mêmes fichiers de certificat de GetHTTPS pour votre serveur web et votre serveur de messagerie — tant que le certificat couvre le nom d’hôte utilisé par votre serveur de messagerie (par ex. mail.example.com).
Obtenez un certificat couvrant votre nom d’hôte de messagerie :
- Dans GetHTTPS, ajoutez
mail.example.com(ou le nom d’hôte vers lequel pointe votre enregistrement MX) - Vous pouvez l’inclure avec votre domaine web :
example.com+www.example.com+mail.example.com - Téléchargez les fichiers :
fullchain.pem,privkey.pem
Postfix (SMTP)
Modifiez /etc/postfix/main.cf :
# TLS pour le courrier sortant (envoi)
smtp_tls_security_level = may
smtp_tls_loglevel = 1
# TLS pour le courrier entrant (réception) — STARTTLS sur port 25/587
smtpd_tls_cert_file = /etc/ssl/gethttps/fullchain.pem
smtpd_tls_key_file = /etc/ssl/gethttps/privkey.pem
smtpd_tls_security_level = may
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_loglevel = 1
Pour la soumission (port 587), modifiez /etc/postfix/master.cf :
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
Rechargement : sudo systemctl reload postfix
Dovecot (IMAP/POP3)
Modifiez /etc/dovecot/conf.d/10-ssl.conf :
ssl = required
ssl_cert = </etc/ssl/gethttps/fullchain.pem
ssl_key = </etc/ssl/gethttps/privkey.pem
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = no
Notez le < avant le chemin du fichier — Dovecot utilise cette syntaxe pour lire le contenu du fichier en ligne.
Rechargement : sudo systemctl reload dovecot
Ports IMAP/POP3
| Service | Non chiffré | STARTTLS | TLS implicite (recommandé) |
|---|---|---|---|
| IMAP | 143 | 143 (mise à niveau) | 993 |
| POP3 | 110 | 110 (mise à niveau) | 995 |
| SMTP soumission | 587 | 587 (mise à niveau) | 465 (smtps) |
Les clients de messagerie modernes doivent se connecter sur les ports TLS implicites (993, 995, 465). Configurez-les dans Dovecot et Postfix en plus des ports STARTTLS.
Vérifier le TLS de la messagerie
# Tester SMTP STARTTLS
openssl s_client -connect mail.example.com:587 -starttls smtp
# Tester IMAP TLS implicite
openssl s_client -connect mail.example.com:993
# Tester SMTP TLS implicite (smtps)
openssl s_client -connect mail.example.com:465
Recherchez Verify return code: 0 (ok) et les détails de votre certificat.
Renouvellement
Lorsque vous renouvelez votre certificat Let’s Encrypt, remplacez les fichiers et rechargez à la fois votre serveur web et votre serveur de messagerie :
sudo systemctl reload nginx # web
sudo systemctl reload postfix # SMTP
sudo systemctl reload dovecot # IMAP
Si vous utilisez Certbot avec --deploy-hook, ajoutez les rechargements du serveur de messagerie au script de hook.
Questions fréquemment posées
Puis-je utiliser le même certificat pour le web et l’e-mail ?
Oui — tant que le SAN (Subject Alternative Name) du certificat inclut le nom d’hôte du serveur de messagerie. Si votre MX pointe vers mail.example.com, incluez ce nom lors de la demande du certificat.
Est-ce que Let’s Encrypt fonctionne pour les serveurs de messagerie ?
Oui. Les certificats Let’s Encrypt sont des certificats X.509 standard qui fonctionnent avec tout service compatible TLS — pas seulement les serveurs web. Le certificat ne sait pas s’il est utilisé pour HTTPS, SMTP, IMAP ou autre chose.
Ai-je besoin d’un certificat séparé pour chaque protocole de messagerie ?
Non. Un seul certificat fonctionne pour SMTP (Postfix), IMAP (Dovecot) et votre serveur web simultanément. Pointez tous les services vers les mêmes fullchain.pem et privkey.pem.
Qu’en est-il de Microsoft Exchange ?
Exchange utilise le format PFX/PKCS#12. Convertissez vos fichiers PEM en PFX, puis importez via le Centre d’administration Exchange → Serveurs → Certificats → Importer. Le processus est similaire à l’installation de certificat sur IIS.