Files
vps-docs/08-sni-mail.md
2026-04-08 16:15:11 +02:00

79 lines
2.1 KiB
Markdown

# 8. SNI Mail Multi-Domaines
## Probleme
Par defaut, Dovecot/Postfix servent un seul certificat SSL pour tous les domaines mail. Les clients (iPhone, Gmail app) refusent la connexion si le certificat ne correspond pas au serveur configure.
## Solution : SNI (Server Name Indication)
### Dovecot SNI
Editer `/etc/dovecot/dovecot.conf`, apres la ligne `ssl_prefer_server_ciphers = no` ajouter :
```
# SNI per domain
local_name mail.<DOMAINE1> {
ssl_cert = </chemin/vers/mail.<DOMAINE1>-le.crt
ssl_key = </chemin/vers/mail.<DOMAINE1>-le.key
}
local_name mail.<DOMAINE2> {
ssl_cert = </chemin/vers/mail.<DOMAINE2>-le.crt
ssl_key = </chemin/vers/mail.<DOMAINE2>-le.key
}
```
> **Piege :** Ne pas mettre le SNI dans `conf.d/10-ssl.conf` — ISPConfig ou le `dovecot.conf` principal ecrase les valeurs. Toujours ajouter directement dans `dovecot.conf`.
### Trouver les certificats
ISPConfig stocke les certificats LE dans le dossier SSL du site :
```bash
find /var/www/clients/ -name "mail.<DOMAINE>-le.*"
```
Format : `/var/www/clients/clientX/webY/ssl/mail.<DOMAINE>-le.crt` et `.key`
### Postfix SNI
Creer `/etc/postfix/sni_map` :
```
mail.<DOMAINE1> /chemin/vers/mail.<DOMAINE1>-le.key /chemin/vers/mail.<DOMAINE1>-le.crt
mail.<DOMAINE2> /chemin/vers/mail.<DOMAINE2>-le.key /chemin/vers/mail.<DOMAINE2>-le.crt
```
```bash
postmap -F hash:/etc/postfix/sni_map
```
Ajouter dans `/etc/postfix/main.cf` :
```
tls_server_sni_maps = hash:/etc/postfix/sni_map
```
### Redemarrer
```bash
systemctl restart dovecot
systemctl restart postfix
```
### Verification
```bash
echo | openssl s_client -connect <IP>:993 -servername mail.<DOMAINE1> 2>&1 | grep "subject="
# Doit afficher : subject=CN = mail.<DOMAINE1>
echo | openssl s_client -connect <IP>:993 -servername mail.<DOMAINE2> 2>&1 | grep "subject="
# Doit afficher : subject=CN = mail.<DOMAINE2>
```
## Certificat par defaut ISPConfig
Le certificat dans `/usr/local/ispconfig/interface/ssl/ispserver.crt` est utilise pour :
- ISPConfig panel (port 8080)
- Dovecot/Postfix par defaut (quand SNI ne match pas)
Garder le certificat du domaine principal du serveur (`<DOMAINE>`) comme defaut.