WIP dovecot

This commit is contained in:
benoit 2017-03-05 21:06:11 +01:00
parent 0ad5793be7
commit f7370b7f19

View file

@ -150,28 +150,27 @@ Ensuite on génère un certificat (sans passphrase) pour les services web et mai
# ./shellpki.sh create # ./shellpki.sh create
``` ```
On obtiens un certificat et une clé dans `/etc/ssl/clients/` que l'on positionne sur nginx, dovecot et postfix. Les différentes directives à modifier : On obtiens un certificat et une clé dans `/etc/ssl/clients/` que l'on positionne sur nginx et dovecot. Les différentes directives à modifier :
``` ```
/etc/nginx/sites-available/mailcow.conf:25: ssl_certificate /etc/nginx/sites-available/mailcow.conf:25: ssl_certificate
/etc/nginx/sites-available/mailcow.conf:26: ssl_certificate_key /etc/nginx/sites-available/mailcow.conf:26: ssl_certificate_key
/etc/postfix/main.cf:17:smtpd_tls_cert_file
/etc/postfix/main.cf:18:smtpd_tls_key_fil
/etc/dovecot/dovecot.conf:129:ssl_cert /etc/dovecot/dovecot.conf:129:ssl_cert
/etc/dovecot/dovecot.conf:130:ssl_key /etc/dovecot/dovecot.conf:130:ssl_key
``` ```
``` ```
# for service in dovecot postfix nginx; do systemctl restart $service; done # systemctl restart nginx
# systemctl restart dovecot
``` ```
On en régénère un autre pour votre client (sans passphrase), soit un utilisateur par exemple. On pourra choisir un « Common Name » `username.mail.domain.tld` ou `Nom Prénom`. On en régénère un autre pour votre client (sans passphrase), soit un utilisateur par exemple. Il faudra choisir un « Common Name » du type `user@domain.tld`.
``` ```
# ./shellpki.sh create # ./shellpki.sh create
``` ```
Puis on le converti au format `PKCS#12` avec une passphrase d'export. Puis on le converti au format `PKCS#12` avec une passphrase d'export. Cette passphrase sera demandé à l'import dans un navigateur ou smartphone par exemple.
``` ```
# cd /etc/ssl/clients # cd /etc/ssl/clients
@ -193,17 +192,29 @@ ssl_verify_client on;
# systemctl restart nginx # systemctl restart nginx
``` ```
Pour dovecot :
Pour dovecot
``` ```
ssl_client_ca_file = </etc/shellpki/ca/cacert.pem # Client certificate
ssl_ca = </etc/shellpki/ca/cacert.pem
ssl_verify_client_cert = yes ssl_verify_client_cert = yes
ssl_cert_username_field = commonName
protocol !smtp {
auth_ssl_require_client_cert = yes
auth_ssl_username_from_cert = yes
auth_mechanisms = external
}
``` ```
``` ```
# systemctl restart dovecot.service # systemctl restart dovecot.service
``` ```
> **Note** : Attention, si vous avez un webmail qui se connecte en local, imap non chiffré, l'activation de `auth_ssl_require_client_cert`, va imposer d'utiliser un certificat… Cassant votre webmail. Il n'y a pas à ce jour la possibilité d'activer `auth_ssl_require_client_cert` seulement pour imaps.
# Autres actions # Autres actions
Voici une liste de tâches non exhaustives à faire de votre côté que je ne documente pas, non obligatoire mais conseillé… Voici une liste de tâches non exhaustives à faire de votre côté que je ne documente pas, non obligatoire mais conseillé…