Victor,

On Mon, 2024-12-09 at 19:46 +1100, Viktor Dukhovni via Postfix-users
wrote:
> On Mon, Dec 09, 2024 at 08:28:55AM +0100, Tobi via Postfix-users
> wrote:
> 
> > since this weekend we have the issue that our postfix seems to be
> > unable to verify TLS certs presented by Microsoft. We get
> > 
> > > Server certificate not verified
> 
> Is that preventing mail delivery, or just noise in the logs?
not just noise. It prevents our delivery and finally we bounce back to
sender with "expired"
> 
> > openssl verify -verbose <(echo | openssl s_client -connect \
> >       52.101.73.19:25 -starttls smtp 2>/dev/null)
> 
> This does not set the "servername" (SNI extension hostname), so
> you'll
> get the defaUlt certificate, which may not be the "right one".
> 
> > > C = US, ST = Washington, L = Redmond, O = Microsoft Corporation,
> > > CN = mail.protection.outlook.com
> > > error 20 at 0 depth lookup: unable to get local issuer
> > > certificate
> > > error /dev/fd/63: verification failed
> 
> It would have been more useful if you had posted the certificate
> chain
> instead.  Assuming you were actually tryign to get to something like:
> "<some-customer-com.mail.protection.outlook.com>.  Probing that we
> see a chain with an EE and issuer certificate:
> 
>     $ posttls-finger -cC -lverify -Lsummary "nist-
> gov.mail.protection.outlook.com" 2>/dev/null
>         > /tmp/msft-chain.pem
> 
>     $ openssl crl2pkcs7 -nocrl -certfile /tmp/msft-chain.pem |
>         openssl pkcs7 -print_certs -noout
>     subject=C = US, ST = Washington, L = Redmond, O = Microsoft
> Corporation, CN = mail.protection.outlook.com
>     issuer=C = US, O = DigiCert Inc, CN = DigiCert Cloud Services CA-
> 1
> 
>     subject=C = US, O = DigiCert Inc, CN = DigiCert Cloud Services
> CA-1
>     issuer=C = US, O = DigiCert Inc, OU = www.digicert.com, CN =
> DigiCert Global Root CA
> 
thanks for the hint with posttls-finger. Using that I can see that the
certificate gets validated properly

> openssl verify -show_chain -untrusted  <(posttls-finger -cC -lverify
-Lsummary "leha-ch.mail.protection.outlook.com" 2>/dev/null) 
<(posttls-finger -cC -lverify -Lsummary "leha-
ch.mail.protection.outlook.com" 2>/dev/null)
/dev/fd/62: OK
Chain:
depth=0: C = US, ST = Washington, L = Redmond, O = Microsoft
Corporation, CN = mail.protection.outlook.com (untrusted)
depth=1: C = US, O = DigiCert Inc, CN = DigiCert Cloud Services CA-1
(untrusted)
depth=2: C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert
Global Root CA

does this mean that postfix does not use SNI and therefore gets the
default cert which also openssl confirms that it cannot be validated?
> This verifies against the Fedora 41 system trust store, via the
> "Digicert
> Global Root CA" trust anchor:
> 
>     $ openssl verify -show_chain -untrusted /tmp/msft-chain.pem
> /tmp/msft-chain.pem
>     /tmp/msft-chain.pem: OK
>     Chain:
>     depth=0: C = US, ST = Washington, L = Redmond, O = Microsoft
> Corporation, CN = mail.protection.outlook.com (untrusted)
>     depth=1: C = US, O = DigiCert Inc, CN = DigiCert Cloud Services
> CA-1 (untrusted)
>     depth=2: C = US, O = DigiCert Inc, OU = www.digicert.com, CN =
> DigiCert Global Root CA
> 
> The certs in question are below my signature.  Unless the problem was
> fixed between your post and my reply.  Things seem OK on the MSFT
> end.
> 
Cheers

tobi

_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org

Reply via email to