Initial commit: VPS tutorial complet (105 etapes)

This commit is contained in:
Script Shadow
2026-04-08 16:15:11 +02:00
commit acbe11489c
18 changed files with 1848 additions and 0 deletions

78
08-sni-mail.md Normal file
View 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.