One of them is a large university (getting Other(CaUsedAsEndEntity)), another one is a large governmental organization (getting NotValidForName). Emails are being delivered with Postal, SendGrid, and Gmail to the same email addresses without any errors. So far as I can tell, the errors are actually true (the certificates are self-signed, expired or invalid for the domain), and I assume the other systems are ignoring certificate errors. Is there any way for me to tell Kumo to do the same?
(I can’t share specific examples publicly here, but can share privately in DM if it helps).
By default, KumoMTA uses “Opportunistic” TLS (with validation) - “use TLS if advertised by the EHLO response. If the peer has invalid or self-signed certificates, then the delivery will fail. KumoMTA will NOT fallback to not using TLS on that same host.”
So setting it to “OpportunisticInsecure” will skip all validations checks.
Yes, Syed is correct. I wanted to note that you should take care when using the Insecure modes; while they enable session privacy with the destination, the lack of verification means that you may be having a private communication with an impostor. Depending on the nature of your mail, this may or may not be a concern for you.
You may want to consider enabling MTA-STS and/or DANE support. Both will upgrade the TLS mode to Required when the destination domain indicates that through their published policies, with no addition explicit MTA configuration required on the part of the sender (aside from enabling these policy lookups).
MTA-STS is simple to enable, whereas DANE also requires some changes to your DNS resolving configuration to ensure that DNSSEC is functional.
Thanks, I enabled MTA-STS and also set enable_tls to OpportunisticInsecure in shaping.toml for the domains that have invalid certs, I think that should work.
How about failed to connect to any candidate hosts: TLS handshake with ResolvedAddress { name: "mail.example.com.", addr: 1.2.3.4 }:25 failed: tls handshake eof? Shoud I be increasing connect_timeout / starttls_timeout?
sounds like the remote host closed the connection during the handshake. There’s no client side that will make it succeed, so you’ll probably want to disable TLS for that domain
to shaping.toml and restarted kumomta (latest stable version). After restart I get a new TransientFailure log event with the same errors as before (tls handshake eof, invalid peer certificate: Other(CaUsedAsEndEntity), etc)