hardware / mailserver

:warning: UNMAINTAINED - Simple and full-featured mail server using Docker
https://store.docker.com/community/images/hardware/mailserver
MIT License
1.29k stars 324 forks source link

(postfix) Question sur l'option 'smtp_tls_CAfile' #306

Closed nicolas-rdgs closed 6 years ago

nicolas-rdgs commented 6 years ago

Classification

Description

Hello, j'aimerais comprendre l'utilisation de l'option 'smtp_tls_CAfile' du main.cf qui contient '/etc/letsencrypt/live/domain/chain.pem'.

Dans la documentation de postfix, http://www.postfix.org/postconf.5.html#smtp_tls_CAfile, il est écrit :

A file containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates. These are loaded into memory before the smtp(8) client enters the chroot jail. If the number of trusted roots is large, consider using smtp_tls_CApath instead, but note that the latter directory must be present in the chroot jail if the smtp(8) client is chrooted. This file may also be used to augment the client certificate trust chain, but it is best to include all the required certificates directly in $smtp_tls_cert_file.

Etant donné qu'il s'agit du daemon smtp, ce paramètre n'est pas utilisé pour vérifier le certificat serveur distant ? Car de ce que je comprends, lorsque le mail est envoyé au serveur distant, postfix récupère et vérifie l'authenticité du certificat serveur distant (si TLS) et dans ce cas là, ne faut-il pas définir 'smtp_tls_CApath' à la place avec '/usr/share/ca-certificates' par exemple ?

hardware commented 6 years ago

Oui tu as raison c'est une erreur de ma part. Je pense qu'on peut utiliser au choix :

smtp_tls_CApath = /etc/ssl/certs
smtpd_tls_CApath = /etc/ssl/certs
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Mais je me demande si c'est réellement utile, autant virer ces directives vu qu'elles semblent inutiles. OpenSSL doit par défaut aller voir dans les répertoires de l'OS. Ça fait 6 ans que j'ai cette configuration avec Postfix, j'ai jamais eu de soucis de vérification de certificat.

nicolas-rdgs commented 6 years ago

Je pense aussi que retirer ces directives ne poseront aucun problème puisque oui comme tu dis, y'a aussi ça d'écrit : "Specify "tls_append_default_CA = no" to prevent Postfix from appending the system-supplied default CAs and trusting third-party certificates.".

Après je pense qu'il faut configurer des restrictions assez fines pour que ces directives soient prises en comptes mais j'y vois pas l'intérêt à moins de faire un serveur mail limité ^^

hardware commented 6 years ago

Je vais laisser cette option positionnée comme ça, parce que si je retire smtp_tls_CAfile = {{ .CAFILE }}, mes tests échouent, parce que le certificat de test ne peut pas être vérifié, ce qui est normal parce que sa chaine de certification est complètement obsolète. La prochaine fois que j'arriverais à avoir un certificat Let's Encrypt qui ne peut plus être utilisé et qui aura un chaine valide, je modifierai tout ça.

navossoc commented 6 years ago

I was looking the same thing a few days ago and I had the same interpretation as @Body4.

If set, smtp_tls_CAfile should point to a bundle of CA Root certificates. Something like this: https://curl.haxx.se/ca/cacert.pem

Also smtpd_tls_cert_file probably should point to fullchain.pem not cert.pem. http://www.postfix.org/postconf.5.html#smtpd_tls_cert_file

Example: the certificate for "server.example.com" was issued by "intermediate CA" which itself has a certificate of "root CA". Create the server.pem file with "cat server_cert.pem intermediate_CA.pem root_CA.pem > server.pem".

I may have missed something on the conversation (google translator ;D)