OVH Community, votre nouvel espace communautaire.

postfix TLS erreur


Nowwhat
10/10/2014, 13h51
Donc: quand tu utilise le comande spécialisé 'openssl' pour engager une connection SSL avec ce serveur 'mail' qui parle aussi 'SSL' et que ça ce passe bien, tu sais que ton serveur posède toutes les données né"cessaires pour créer une connection SSL valide.

Or: postfix ne peut le faire.

Conclusion; ton "untrusted" est le résultat d'un paramétrage de postfix.

Pioche ici: http://www.google.com/search?hl=en&q=postfix+untrusted

Une partie de mon main.cf:
.....
# TLS server options
smtpd_tls_cert_file= /root/startssl/un-domaine.tld/ssl.crt
smtpd_tls_key_file= /root/startssl/un-domaine.tld/ssl-decrypted.key
smtpd_tls_CAfile = /root/startssl/startssl-ca-bundle.pem
smtpd_use_tls = yes
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
#smtpd_tls_auth_only = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_loglevel = 1

smtpd_tls_ask_ccert = yes
#smtpd_tls_req_ccert = yes
smtpd_tls_mandatory_protocols = !SSLv2
smtpd_tls_mandatory_ciphers = high
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5

# TLS client options
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtp_tls_CApath = /etc/ssl/certs
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_loglevel = 1

tls_random_source = dev:/dev/urandom
....
Il faut savoir que j'utilise par domaine un IP(FO)v4.
Même chose pour les IPv6.

Cette partie est important:
smtpd_tls_cert_file= /root/startssl/un-domaine.tld/ssl.crt
smtpd_tls_key_file= /root/startssl/un-domaine.tld/ssl-decrypted.key
smtpd_tls_CAfile = /root/startssl/startssl-ca-bundle.pem
Ces données ne sont jamais utilisé, mais je suis oblige de fournir postfix ces options pour que le "engin" SSL s'initialise bien au démarrage.

T'as vu le
Code:
smtp_tls_CApath = /etc/ssl/certs
?
Il s'agit le répertoire avec toutes les certificats que je 'trust' - c'est probablement ce smtp_tls_CApath qui manque chez toi.
Postfix ne peut donc faire confiance à personne .....
Voila ton 'untrusted' expliqué.

Quand je recoit un mail en ssl, ou quand j'envoi un mail avec ssl, postfix va choisir les bonnes certificats:
Une partie de mon master.cf (réception des mails):

Code:
# -------------------------------------------------------------------------------------------
#
# smtp : server == mail receiving - IPv6
#
[2001:41d0:2:927b::15]:smtp      inet    n       -       -       -       -       smtpd
  -o myhostname=mail.test-domaine.fr
  -o smtp_helo_name=test-domaine.fr
  -o syslog_name=test-domaine.fr-smtp-client-ipv6
  -o smtpd_tls_cert_file=/root/startssl/test-domaine.fr/ssl.crt
  -o smtpd_tls_key_file=/root/startssl/test-domaine.fr/ssl-decrypted.key
  -o smtpd_tls_CApath=/etc/ssl/certs

......
# même domaine, IPv4 - receiving mail

5.196.43.182:smtp      inet    n       -       -       -       -       smtpd
  -o myhostname=mail.test-domaine.fr
  -o smtp_helo_name=mail.test-domaine.fr
  -o syslog_name=papy-team.org-smtp-client-ipv4
  -o smtpd_tls_cert_file=/root/startssl/test-domaine.fr/ssl.crt
  -o smtpd_tls_key_file=/root/startssl/test-domaine.fr/ssl-decrypted.key
  -o smtpd_tls_CApath=/etc/ssl/certs

.....
En dessus, ce mon postfixc avec le rôle de "serveru" qui va présenter au client (le type qui veut me filer un mail) MON certificat - et lui (le type) va vérifier ce certificat.
Heuresement, ce certificat est crée par StartSSL, et il est donc plus ou moins connu et valide.
[Note: il s'agit un certicat gratuit chez donc il y a un léger blem quand même... mais bof je me osef ** ]

Et émission (postfix en tant que client == smtp )

Code:
test-domaine_fr unix  -       -       n       -       -       smtp
   -o smtp_bind_address6=2001:41d0:2:927b::15
   -o smtp_bind_address=5.196.43.182
   -o smtp_helo_name=mail.test-domaine.fr
   -o syslog_name=test-domaine.fr-transport
   -o smtp_tls_CAfile=/root/startssl/sub.class1.server.ca.pem
   -o smtp_tls_security_level=may

....
Code:
test-domaine_fr unix  -       -       n       -       -       smtp
Ceci est un peu spécial: suivant le mail sortant en question (le nom de domaine) postfix va choisir le BON IP, de préference un IPv6, it si le IPv6 passe pas, il bascule automatiquement en IPv4.

PSQ: mes certificats ne sont pas auto-certifié, c'est StartSSL qui s'occupe de ça.
Un certificat avec UN sous domaine (i.e. www.test-domaine.fr) est GRATUIT.
Régarde: https://www.test-domaine.fr/ - domaine avec acces SSL - sans message d'erreur dans ton navigateur.
Gratuit.
Avec les complications de paramétrage pour ton serveur web (Apache2) . La partie https - SSL possède son camion plein de paramétrages et autres trucs à savoir. C'est hyper gadget donc très indispensable - très adaptés aux années 2010 !



** Le certificat test-domaine.fr possède qu'UN sous-domaine: www.test-domaine.fr
Mais pas mail.test-domaine.fr.
Le client qui se connecte à mon serveur mail par l'URL mail.test-domaine.fr ne pourait valider l'adresse "mail.test-domaine.fr" comme certifié par le certificat.
Une soution est: mettre comme MX "test-domaine.fr" au lieu de mail.test-domaine.fr ainsi que adapter le HELO de mon serveur .... ou payer 50 $ et demander un vrai certicat avec l'option sous-domaines.
Je me suis dit que je m'arrête la

christophe31
10/10/2014, 12h17
En fait ca me fait la meme chose avec Gmail ! et pourtant la personne recoit bien le mail ...
Ca confirme ce que tu me dis

christophe31
10/10/2014, 07h44
d'accord merci je comprends mieux !
lorsque je fais la commande
openssl s_client -connect mx1.hotmail.com:25 -starttls smtp -CApath /usr/share/ca-certificates
J'ai aussi une réponse cohérente !

New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID: 5F2F0000B323333493202924F3DE152323FABC5AA928A6
Session-ID-ctx:
Master-Key: C0EE8020499FE17F0B7713B7236EF33020E5D243234379A258 8EFB1E8C92899FA1DC0AB31C527DE38E162BD8C7149D
Key-Arg : None
Start Time: 1412922844
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
250 OK
Visiblement le résultat du dialogue est satisfaisant !
Mon fichier present dans "/usr/share/ca-certificates" est aussi valide !

sauf que mon postfix affiche toujours:
postfix/smtp[4872]: certificate verification failed for mx3.hotmail.com[65.55.37.104]:25: untrusted issuer /C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root

Et pour ce qui du http://www.mail-tester.com/
J'ai la note de 9/10 i l me manque Dkim mais ce n'est pas bloquant.

Nowwhat
09/10/2014, 15h30
T'as pas comris

Les vérifications de http://www.checktls.com/ partent dans l'autre sens que les soucis avec outlook.com.

Le test de http://www.checktls.com/ : c'est checktls.com en tant que client, qui se connecte sur ton serveur.
Le "client" (checktls) te signale que:
[001.074] So email is encrypted but the domain is not verified => Normal => le certicat est auto signé.
[001.075] Cert Hostname DOES NOT VERIFY (mail.domain.fr != localhost) => T'as du au moins virer 'localhost' pour mettre "mail.domain.fr" à la place pendant la création de ton certificat !!)
[001.075] So email is encrypted but the host is not verified => T'as vu ?

Or, ton soucis est que outlook.com (le serveur - cette fois si) est contacté pour ton serveur mail (qui joue le client).
C'est ton client (ton serveur) qui va vérifier le certificat du serveur "outlook.com".
"outlook.com" possède bien sur un certificat valide. Ton onstallation postfix n'a pas pu vérifier la validité de ce certicat.

Regarde moi ça:
openssl s_client -connect mx1.hotmail.com:25 -starttls smtp -CApath /usr/share/ca-certificates
Traduction (http://serverfault.com/questions/131...-certificate): vérifier les certificats de mx1.hotmail.com:25 - le MX de outlook.com

Le résultat:
depth=3 C = IE, O = Baltimore, OU = CyberTrust, CN = Baltimore CyberTrust Root
verify return:1
depth=2 CN = Microsoft Internet Authority
verify return:1
depth=1 DC = com, DC = microsoft, DC = corp, DC = redmond, CN = MSIT Machine Auth CA 2
verify return:1
depth=0 CN = *.outlook.com
verify return:1
puis à la fin:
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES256-SHA384
Session-ID: E61A0000B7C606EAE1298870BA0A46ED99F368C0A8BEF88DE1 E366D1E5E4E019
Session-ID-ctx:
Master-Key: 4D4FD002B9B994F15489D651AE8A08E82B27F7045E34AF51FC 4ADDD322E994D0A2F816644C3837135DF45506B95686CC
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1412864790
Timeout : 300 (sec)
Verify return code: 0 (ok)---
250 OK
Tout va bien.
Postfix, mon MTA, va donc dire:

Conclusion: suivant mes sources (les fichiers que j'ai dans /usr/share/ca-certificates) le certificat proposé par mx1.hotmail.com - porte 25 est valide.

Mon postfix va afficher Trusted

T'as vu que je file au commande openssl le paramtre
-CApath /usr/share/ca-certificates
Je lui indique ou sont stockées mes certificats que je 'trust' == que je fait confiance.
Ton PC Windows ou MAC possède le même liste. Il s'agit des certificats 'racine' des gros maisons comme Verisign, GeoTrust, StartSSL, etc.

Encore une fois: ceci n'est pas lié au fait que ton mail est jetté dans le pouvelle par hotmail.com.
C'est leur habitude de faire ça. C'est un fournisseur bas de gamme - parfait pour gamin&co.
Va questionner http://www.mail-tester.com/ - passe au 10/10 D'ABORD.

christophe31
09/10/2014, 13h45
non le mail n'est pas livré malgré le
3F04E3BAC14B: to=, relay=mx1.hotmail.com[65.55.33.135]:25, delay=2.4, delays=0.2/0/1.5/0.73, dsn=2.0.0, status=sent (250 <003001cfe395$9d19a6d0$d74cf470$@fr> Queued mail for delivery)
Faut que je precise que ca a fonctionner pendant des années et du jour au lendemain sans modification de postfix ou autre j'ai eu ce message !
Certainement un changement de politique de microsoft....
merci pour l'explication:
et du coup un http://www.checktls.com/
-->ca donne:
Note: Cert failures do not affect TLS encryption, but may mean the site isn't who they say they are

Cert NOT VALIDATED: self signed certificate
[001.074] So email is encrypted but the domain is not verified
[001.075] Cert Hostname DOES NOT VERIFY (mail.domain.fr != localhost)
[001.075] So email is encrypted but the host is not verified
En gros mon certificat est auto-signé et microsoft n'en veut pas ! etrange ca a toujours fonctionne jusqu'ici ...

du coup il faudrait quoi , que je regenere des certificat auto-signé

Nowwhat
09/10/2014, 11h33
Bonjour,

Regarde:
Oct 9 11:55:35 ns311465 mon-serveur-transport/smtp[20374]: Trusted TLS connection established to gmail-smtp-in.l.google.com[2a00:1450:4010:c04::1b]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Je me suis dit aussi : pourquoi j'avais ce "untrusted" ?
Ce n'est pas simple à expliquer, donc, d'abord, je te rassure. Ce "untrusted", c'est benin. La connexion est quand même sécurisé.

Ma réponse (après demandé de l'aide auprès lui qui m'a amené vers la solution: Google) :
=> car t'as pas la liste avec les certificats racine (dont, etre autre ceux de outlook.com) que tu fait confiance ... (Debian: apt-get install ca-certificats)
=> t'as les certificats racines mais postfix ne le trouve pas
=> t'as les certificats racines postfix pourait les trouver mais t'as mal paramétré la partie SSL/TLS (très vaste, cette partie SSL/TLS de postfix).

Avec plaisir je pourrais monter ma config postfix (main.cf, master.cf, etc) mais il s'agit d'un install "virtual" + MySQL + adaptations perso + certificats pour toutes mes domaines** + recompil postfix + etc ....

Car, après tout: que mon serveur ne fait pas confiance à gmail.com ou outlook.com, c'est une chose.
Retourne la question: gmail.com fait confiance à MON serveur mail (mode SSL toujours) ce qui implique qu'il me faut des certificats valables pour mes domaines, pas les versions 'fait maison', mais des 'vrais')

Passe par ici pour tester tes accès "serveur mail" coté "SSL": http://www.checktls.com/

édit:
3F04E3BAC14B: to=, relay=mx1.hotmail.com[65.55.33.135]:25, delay=2.4, delays=0.2/0/1.5/0.73, dsn=2.0.0, status=sent (250 <003001cfe395$9d19a6d0$d74cf470$@fr> Queued mail for delivery)
Ce qui confirme qu'ils ont reçu et accepté le mail.
Qui implique PAS que le mail va être déposé dans la boite du destinataire, bien sur. Outlook/hotmail/microsoft procède à des traitements internes (et sécrète) pour déterminer si le mail passe, ou pas. Toutes les FAI's vont ça. Et c'est compréhensible.

Voici un site pour t'aider: http://www.mail-tester.com/ - va pour le 10/10 - ne t'arrête pas avant. Sinon, c'est outlook.com qui t'arrête
Il est impératif de faire parler propement ton serveur mail aux autres serveurs - que toutes les gadgets qu sont devenus des normes, sont respectés. Sinon c'est le cata, et tout le monde fait comme il chante, et la communication ne passe plus (encore une fois: c'est ça que tu constate).

Dans le log de ton serveur mail, les deux messages que t'as montrés, il faut les lire indépendant.
Le mail EST reçu par le serveur mail de outlook.com
et
Le test des certificats à foiré - ton serveur mail n'a pas pu authentifier outlook.com

fritz2cat
09/10/2014, 11h09
le mail a été livré chez Hotmail et le destinataire doit retrouver ce mail.
Peut-être dans le dossier spam ?

christophe31
09/10/2014, 09h30
bonjour,

Quand j'envoi un e-mail vers du hotmail, outlook...
dans mes logs j'ai:

3F04E3BAC14B: to=, relay=mx1.hotmail.com[65.55.33.135]:25, delay=2.4, delays=0.2/0/1.5/0.73, dsn=2.0.0, status=sent (250 <003001cfe395$9d19a6d0$d74cf470$@fr> Queued mail for delivery)
puis
postfix/smtp[2002]: certificate verification failed for mx3.hotmail.com[65.55.37.72]:25: untrusted issuer /C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root

et je n'ai pas de retour et le message n'arrive jamais.

Vous avez une idée de ce que ça pourrez être ?