Topologie directe : ACME intégré
Quand OxiMail possède les ports 80/443, il provisionne et renouvelle lui-même son certificat auprès de Let’s Encrypt :ArcSwap, ADR-016) : les connexions en cours terminent sur l’ancien, les nouvelles poignées de main reçoivent le nouveau, sur tous les écouteurs à la fois, SMTP et IMAP compris.
Topologie proxy inverse
Derrière Caddy ou Nginx, le proxy possède 80/443 et ses propres certificats, etacme_enabled = false (l’assistant l’écrit pour vous). Deux points restent importants :
- SMTP (25/587/465) et IMAPS (993) ne passent pas par le proxy : OxiMail y termine le TLS lui-même. Il lui faut un certificat pour eux : pointez
[tls]vers les fichiers de certificat du proxy, ou copiez-les par un hook de déploiement, en sachant qu’OxiMail recharge les fichiers à chaud quand ils changent. - Le proxy doit transmettre tout sauf le chemin de défi ACME, avec
X-Forwarded-Fordepuis une adresse de[server] trusted_proxies: voir premier démarrage pour l’extrait généré et la règle CORS.
Le couplage DANE
Si vous publiez des enregistrements DANE TLSA (authentification du courrier), un renouvellement de certificat change la valeur épinglée : des TLSA périmés cassent le courrier entrant de chaque expéditeur qui valide DANE. C’est pourquoidane_enabled = true (le défaut) exige un fournisseur [dns] configuré : après chaque renouvellement, OxiMail republie lui-même les TLSA (API Cloudflare), ou journalise un rappel bruyant en mode manual. Un serveur avec DANE actif et sans fournisseur DNS refuse de démarrer plutôt que de vous préparer cette casse silencieuse.
Échange de clés post-quantique
Chaque surface TLS qu’OxiMail termine lui-même (25, 465, 587, 993, et le 443 quand aucun frontal ne se trouve devant) propose en tête le groupe hybride X25519MLKEM768, avec le X25519 classique en repli. Rien n’est cassé au passage : un pair qui ne connaît pas le groupe hybride négocie X25519 exactement comme avant. Il n’y a pas de réglage pour l’activer, c’est la posture livrée. La menace visée est « récolter maintenant, déchiffrer plus tard » : un adversaire enregistre le trafic d’aujourd’hui pour le déchiffrer quand la machine capable de le faire existera. Être en retard là-dessus ne se rattrape pas après coup, d’où un défaut plutôt qu’une option. Ce n’est pas théorique pour le courrier : Gmail propose déjà le groupe hybride sur 25, 465, 587 et 993, le courrier sortant vers lui négocie donc du post-quantique dès aujourd’hui. Vérifiez au lieu de supposer. Cette propriété précise a été fausse en silence pendant des mois ici : la fonctionnalité était compilée alors que le fournisseur de cryptographie installé n’en avait aucune implémentation, si bien que chaque session retombait sur le X25519 classique pendant que la configuration se lisait comme le contraire. Un repli de ce genre est invisible : aucune erreur, aucune ligne de journal, rien qui échoue. Avec OpenSSL 3.5 ou plus récent :Inspecter et dépanner
- Port 80 injoignable : le défi HTTP-01 ne peut pas aboutir. Ouvrez-le dans le pare-feu ou le groupe de sécurité ; il ne sert jamais que les défis et les redirections.
- Limité par Let’s Encrypt : des tentatives d’émission échouées en boucle (généralement une erreur DNS) peuvent atteindre les limites par domaine de LE ; corrigez la cause avant de réessayer.
- Des expéditeurs DANE rebondissent après un renouvellement : les TLSA n’ont pas été mis à jour. Vérifiez la configuration du fournisseur
[dns]et les journaux de renouvellement.
/etc/oximail/tls/, qui fait partie de la surface de sauvegarde standard.