Retouches
This commit is contained in:
parent
f7370b7f19
commit
1dd7c65284
1 changed files with 8 additions and 30 deletions
|
@ -115,13 +115,13 @@ Laissez-vous guider par le script d'installation.
|
||||||
|
|
||||||
Voilà, c'est fini ! Il vous reste à créer votre premier compte mail via l'interface d'admin.
|
Voilà, c'est fini ! Il vous reste à créer votre premier compte mail via l'interface d'admin.
|
||||||
|
|
||||||
Si vous avez des questions ou besoin d'aide, n'hésitez pas à ouvrir un ticket (an anglais !) ici. Sinon demandez-moi sur [Twitter](https://twitter.com/benpro82) ou par [Mail](mailto:benoit[arobase]benpro.fr).
|
Si vous avez des questions ou besoin d'aide, n'hésitez pas à ouvrir un ticket (an Anglais !) [ici](https://github.com/andryyy/mailcow/issues). Sinon demandez-moi sur [Twitter](https://twitter.com/benpro82) ou par [mail](mailto:benoit[arobase]benpro.fr).
|
||||||
|
|
||||||
# Bonus : Certificat client X.509
|
# Bonus : Certificat client X.509
|
||||||
|
|
||||||
L'idée est de restreindre l'accès aux services web (webmail et admin), et mail (SMTPS/IMAPS) via un certificat client X.509. Sans ce certificat, impossible d'accéder à quoi que ce soit.
|
L'idée est de restreindre l'accès aux services web (webmail et admin), et mail (IMAPS) via un certificat client X.509. Sans ce certificat, impossible d'accéder à quoi que ce soit !
|
||||||
|
|
||||||
> **Note** : Cela remplace le certificat Let's Encrypt utilisé par Mailcow.
|
> **Note** : Cela ne remplace pas le certificat Let's Encrypt utilisé par Mailcow. On demande juste que le client présente un certificat émis par notre CA.
|
||||||
|
|
||||||
Pour cela il faut mettre en place une `PKI` et émettre un certificat client. J'utilise l'outil [shellPKI](https://wiki.evolix.org/HowtoOpenVPN#mise-en-place-dune-pki-avec-shellpki-openbsd-et-debian) pour ça.
|
Pour cela il faut mettre en place une `PKI` et émettre un certificat client. J'utilise l'outil [shellPKI](https://wiki.evolix.org/HowtoOpenVPN#mise-en-place-dune-pki-avec-shellpki-openbsd-et-debian) pour ça.
|
||||||
|
|
||||||
|
@ -142,29 +142,7 @@ Pour cela il faut mettre en place une `PKI` et émettre un certificat client. J'
|
||||||
# ./shellpki.sh init
|
# ./shellpki.sh init
|
||||||
```
|
```
|
||||||
|
|
||||||
Injecter le certificat racine `/etc/shellpki/ca/cacert.pem` dans votre navigateur et vos appareils tel qu'un smartphone.
|
On génère un certificat client (sans passphrase), soit un utilisateur par exemple. Il faudra choisir un « Common Name » du type `user@domain.tld`.
|
||||||
|
|
||||||
Ensuite on génère un certificat (sans passphrase) pour les services web et mail avec un « Common Name » correspondant à votre FQDN pour accéder à vos services comme `mail.domain.tld`.
|
|
||||||
|
|
||||||
```
|
|
||||||
# ./shellpki.sh create
|
|
||||||
```
|
|
||||||
|
|
||||||
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:26: ssl_certificate_key
|
|
||||||
/etc/dovecot/dovecot.conf:129:ssl_cert
|
|
||||||
/etc/dovecot/dovecot.conf:130:ssl_key
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
# systemctl restart nginx
|
|
||||||
# systemctl restart dovecot
|
|
||||||
```
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -177,7 +155,7 @@ Puis on le converti au format `PKCS#12` avec une passphrase d'export. Cette pass
|
||||||
# openssl pkcs12 -export -in benoit.mail.benpro.fr.crt -inkey benoit.mail.benpro.fr.key -out benoit.mail.benpro.fr.p12
|
# openssl pkcs12 -export -in benoit.mail.benpro.fr.crt -inkey benoit.mail.benpro.fr.key -out benoit.mail.benpro.fr.p12
|
||||||
```
|
```
|
||||||
|
|
||||||
Il faudra importer ce certificat client dans les navigateurs et dans diverses applications (Thunderbird, Exchange/GMail sous Android, …).
|
Il faudra importer ce certificat client dans les navigateurs et dans diverses applications (Thunderbird, Exchange/GMail sous Android, K9-Mail, …).
|
||||||
|
|
||||||
La dernière étape consiste à dire à dovecot et nginx qu'il est nécessaire de présenter un certificat client.
|
La dernière étape consiste à dire à dovecot et nginx qu'il est nécessaire de présenter un certificat client.
|
||||||
|
|
||||||
|
@ -192,8 +170,9 @@ ssl_verify_client on;
|
||||||
# systemctl restart nginx
|
# systemctl restart nginx
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Pour dovecot :
|
||||||
|
|
||||||
Pour dovecot
|
> **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… Si vous utilisez un webmail, n'activez pas ceci sur dovecot.
|
||||||
|
|
||||||
```
|
```
|
||||||
# Client certificate
|
# Client certificate
|
||||||
|
@ -206,14 +185,13 @@ protocol !smtp {
|
||||||
auth_ssl_username_from_cert = yes
|
auth_ssl_username_from_cert = yes
|
||||||
auth_mechanisms = external
|
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.
|
Vous devez maintenant faire le nécessaire côté client (Thunderbird, K9-Mail, …)
|
||||||
|
|
||||||
# Autres actions
|
# Autres actions
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue