docker-mailserver: SSL_accept error server won't sent anymore
My mail server no longer sends mails. This morning it was still working and now nothing works at all. I recently renewed the Letsencrypt certificates because they had expired. I don’t know if it has anything to do with that. Now no more e-mails can be sent following error:
Sep 6 19:42:40 mail-server postfix/smtps/smtpd[1830]: SSL_accept error from static.43.231.16.95.clients.your-server.de[95.216.204.62]: lost connection
Sep 6 19:42:40 mail-server postfix/smtps/smtpd[1830]: lost connection after CONNECT from static.43.231.16.95.clients.your-server.de[95.216.204.62]
Sep 6 19:42:40 mail-server postfix/smtps/smtpd[1830]: disconnect from static.43.231.16.95.clients.your-server.de[43.231.16.95] commands=0/0```
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 17 (10 by maintainers)
mail-server.skysmtp.chis your mail-server hostname and what it should advertise itself as when sending mail to other mail-servers. When sending mail, usually the mail-server is not expected to verify the senders TLS certificate as far as I know. But the mail client (like ThunderBird, Roundcube, and perhaps services like Nextcloud) may connect expecting TLS certificate to be valid/correct.user@skysmtp.chit will look at DNS MX record, which should be pointing to the DNS A recordmail-server.skysmtp.ch. If anything requires TLS / SSL certificate to connect to your mail-server it should be for this FQDN (mail-server.skysmtp.ch).This is not correct.
domainnamelast I checked fordockeranddocker-composeis not a web domain name, but NIS domain name, very different things. We try to discourage this and suggest usinghostnameonly,hostname: mail-server.skysmtp.ch. It should not make any difference with our configuration though.When our container starts, it will understand both
hostname-only orhostname+domainname, and it will remove the first value before the.so internally it should always be split tomail-serverandskysmtp.ch. That 2nd value is used for your mail addressuser@skysmtp.ch.Your DNS records such as SPF should authorize
mail-server.skysmtp.chto send, and MX record tomail-server.skysmtp.chto receive.What doesn’t work? Your wordpress site should be using an FQDN in the certificate that matches it, such as
blog.skysmtp.chor if you serve it atskysmtp.ch/blog/then it should use theskysmtp.chcertificate.Only
docker-mailservercontainer needsmail-server.skysmtp.ch. With LetsEncrypt, anything else should have LetsEncrypt CA certificates installed (this is common on most OS) and it will be able to verify your certificate when connecting.This will relax the cipher suites and TLS protocols we allow. It is intended for old devices or services that aren’t able to use better TLS security.
With the default
TLS_LEVEL=modern, we only allow TLS 1.2 or higher, and our TLS 1.2 cipher-suite is restricted to best practice choices (last I checked it followed what OWASP and Mozilla advise, and I made sure to understand it well for mail-server use).It shouldn’t make any difference if nothing in your setup has changed, as that would be a regression from some software to use less secure cipher-suite or protocol.
This is quite possible. I think I remember LetsEncrypt talking about switching over from RSA to ECDSA certificates as their new default.
Some services may still not have ECDSA support, or they do but their cipher suite support for it is not as good. Using
TLS_LEVEL=intermediatemay help in that case. If it does please let me know.You can inspect your certificate in the web browser to see what type LetsEncrypt has given you for
skysmtp.ch.You can also use the
step-cli certificate inspectprogram to check your certificate (from the URI or directly against the certificate file). If you do share any of that with us, be careful not to share your private key (this is like a password, and bad for anyone else to know), only the public key (this is the certificate presented to any software that requests it).You can see this document of ours that I wrote. It uses the
step-clitool to create self-signed certificate for testing, and there is “Certificate details” you can click to view thecertificate inspectoutput. You want to know which one of these you get:RSA 2048-bit certificate:
ECDSA 256-bit certificate:
That is the only information we’re interested in.
You could try:
TLS_LEVEL=intermediateSee also: https://community.letsencrypt.org/t/ssl-accept-error-postfix/85423/8
Maybe the new certificates are ECDSA and that is causing problems?
I didn’t know which certificate was required, so I have one for “skysmtp.ch” and one for “mail-server.skysmtp.ch”.