Initial commit: VPS tutorial complet (105 etapes)
This commit is contained in:
78
08-sni-mail.md
Normal file
78
08-sni-mail.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user