DebianMail unter Debian 12: TLS setup failed: hostname verification failed

Begonnen von pcbastler, 09 August 2023, 21:54:05

Vorheriges Thema - Nächstes Thema

pcbastler

Hallo zusammen,
seit dem Update meiner Smarthome-VM auf Debian 12.1 funktioniert der Mailversand nicht mehr. Selbst per Kommandozeile
sendEmail -f 'xxx@mydomain.net' -t 'fh_68@web.de' -u 'Test' -m 'Das ist ein Test' -s 'smtp.1blu.de' -xu 'LOGIN' -xp 'PASSWORT' -o tls=auto -o message-charset=utf-8
gibts den Fehler:TLS setup failed: hostname verification failed
Der SMTP-Server unterstützt (mit Thunderbird getestet) SSL/TLS auf Port 465 und StartTLS auf Port 587.
Log (sendEmail -vv):
Aug 09 21:28:23 smarthome sendEmail[969056]: DEBUG => Connecting to smtp.1blu.de:25
Aug 09 21:28:24 smarthome sendEmail[969056]: DEBUG => My IP address is: 192.168.35.7
Aug 09 21:28:24 smarthome sendEmail[969056]: DEBUG => evalSMTPresponse() - Found SMTP success code: 220
Aug 09 21:28:24 smarthome sendEmail[969056]: SUCCESS => Received:       220 ms-10.1blu.de ESMTP Exim 4.90_1 Ubuntu Wed, 09 Aug 2023 21:28:24 +0200
Aug 09 21:28:24 smarthome sendEmail[969056]: INFO => Sending:   EHLO smarthome.mydomain.home
Aug 09 21:28:24 smarthome sendEmail[969056]: DEBUG => evalSMTPresponse() - Found SMTP success code: 250
Aug 09 21:28:24 smarthome sendEmail[969056]: SUCCESS => Received:       250-ms-10.1blu.de Hello smarthome.mydomain.home [84.169.163.169], 250-SIZE 157286400, 250-8BITMIME, 250-PIPELINING, 250-AUTH LOGIN PLAIN, 250-CHUNKING, 250-STARTTLS, 250 HELP
Aug 09 21:28:24 smarthome sendEmail[969056]: DEBUG => The remote SMTP server supports TLS :)
Aug 09 21:28:24 smarthome sendEmail[969056]: DEBUG => Starting TLS
Aug 09 21:28:24 smarthome sendEmail[969056]: INFO => Sending:   STARTTLS
Aug 09 21:28:24 smarthome sendEmail[969056]: DEBUG => evalSMTPresponse() - Found SMTP success code: 220
Aug 09 21:28:24 smarthome sendEmail[969056]: SUCCESS => Received:       220 TLS go ahead
Aug 09 21:28:24 smarthome sendEmail[969056]: ERROR => TLS setup failed: hostname verification failed
die Perl-Bibliotheken habe ich mittels CPAN -> upgrade schon auf den letzten Stand gebracht (damit ist 
Use of uninitialized value $2 in concatenation (.) or string at /usr/share/perl5/IO/Socket/SSL.pm line 792. aus dem FHEM-Log beseitigt),
Auf Port 465 bekomme ich mit sendEmail keine Verbindung
sendEmail -f 'fhem@mydomain.net' -t 'fh_68@web.de' -u 'Test' -m 'Das ist ein Test' -s 'smtp.1blu.de:465' ....
Aug 09 21:30:47 smarthome sendEmail[969851]: DEBUG => Connecting to smtp.1blu.de:465
Aug 09 21:30:47 smarthome sendEmail[969851]: DEBUG => My IP address is: 192.168.35.7
Aug 09 21:31:47 smarthome sendEmail[969851]: ERROR => Timeout while reading from smtp.1blu.de:465 There was no response after 60 seconds.


Ganz alleine bin ich mit dem Problem wohl nicht, aber eine Lösung hab ich nirgendwo gefunden. Als Workaround hätte ich noch einen lokalen SMTP-Server, aber das sollte nicht die Lösung sein.
Wer kann hier weiterhelfen?

Otto123

Hi,

was genau bedeutet update?
Edit: Ok auf einem neu installiertem debian 12 habe ich auch dieses Problem.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

pcbastler

update war Debian 11 -> 12. Der Fehler ist unabhängig vom SMTP-Server, ich kann den auch mit smtp.web.de nachstellen

Wernieman

Habe jetzt kein passendes System vor Ort zum Testen .. könntest Du die "Hostnameverifikation" testweise mal im sendemail abschalten?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

pcbastler

habe zwischendurch mit meinem lokalen Server (ohne SSL) getestet, da klappts noch. Liegt also erstmal bei SSL.
Ist auch offiziell als Bug erkannt: https://groups.google.com/g/linux.debian.bugs.dist/c/VuPw373HByE.
@wernieman: da fehlt leider das Hintergrundwissen, wenn ich den Hostnamen in der Kommandozeile durch die IP ersetze wirds nicht besser

Wernieman

Bei einiger Software gibt es die Möglichkeit, diesen Test per "Schalter" abzuschalten.

Hintergrund:
Im Zertifikat ist ein Hostname und der passt reverse nicht zum Aufruf (bzw. die Software denkt, das er nicht passt ...)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

pcbastler

Mit dem Paket aus dem aktuellen testing-Zweig läuft es wieder.

StephanSelve




Funsailor

Hallo,
ich habe das gleiche Problem, sendemail funktioniert nicht mehr (scheinbar seit ich auf bookworm upgedatet habe) und ich bekomme die selbe Fehlermeldung:
"Oct 06 12:11:06 minipc sendemail[733]: ERROR => TLS setup failed: hostname verification failed"

Der Versuch mit der alten Version "sendemail_1.56-5.2_all.deb" funzt auch nicht.

Wie habt Ihr das mit der 1.56-5.2 Version zum laufen gebracht?

- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Funsailor

Da ich auch mit der sendemail_1.56-5.2 Version nicht weitergekommen bin, habe ich mir den Patch von hier:

https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1915977.html

in die \usr\bin\senEmail eingebaut:

        ## Start TLS if possible
##        if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
##            printmsg("DEBUG => Starting TLS", 2);
##            if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
##            if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv23:!SSLv2')) {
##                quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
##            }
##            printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);


        ## Start TLS if possible
        if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
            printmsg("DEBUG => Starting TLS", 2);
            if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
            if (! IO::Socket::SSL->start_SSL($SERVER,
               SSL_version => 'TLSv12:!SSLv2',
               SSL_verifycn_scheme => 'smtp',
               SSL_verifycn_name => $conf{'server'})) {quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
            }
            printmsg("DEBUG => TLS: Using cipher: ". $SERVER->get_cipher(), 3);

Jetzt funktioniert das senden von Emails wieder Problemlos  ;D  8)

Mal sehen wie lange  ::)

Vorher hatte ich meine Probleme mit fhem
Zitathttps://forum.fhem.de/index.php?msg=1288545
gelöst.

- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Wernieman

            if (! IO::Socket::SSL->start_SSL($SERVER,
               SSL_version => 'TLSv12:!SSLv2',
               SSL_verifycn_scheme => 'smtp',
               SSL_verifycn_name => $conf{'server'})) {quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(), 1);
Genau eine dieser Eistellungen dürfte der Problemlöser gewesen sein. Könnte man sich rantasten ... würde pauschal an SSL_version Tippen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

juemuc

Hallo zusammen,

die Version sendemail_1.56-5.2 kann man wie folgt installieren:

1. Repository ergänzen mit
sudo nano /etc/apt/sources.list2. folgende Zeile ergänzen:
deb http://deb.debian.org/debian bookworm-backports main3. sudo apt update4. sudo apt install sendemail/bookworm-backports
Danach funktioniert sendemail wieder.

Viele Grüße
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

Rewe2000

Hallo Jürgen,

auch ich war nach der Installation auf Bookworm von dem Mailproblem betroffen, die von dir beschriebene Vorgehensweise hat das Problem auch bei mir beseitigt, Danke dafür.

Eine Frage als Gelegenheits Linux-User habe ich noch dazu.
Muss ich zu einen späteren Zeitpunkt den Eintrag wieder aus dem Repository entfernen oder kann der zukünftig so bleiben?
Irgendwann wird ja wahrscheinlich sendemail_1.56-5.2 als Standard beim Update mitkommen.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

Holger

Vielen Dank für die Lösung. Sie hat auch bei mir funktioniert.
RPi2 | Fhem 5.7

ph0x

Zitat von: Rewe2000 am 01 Dezember 2023, 17:26:31Muss ich zu einen späteren Zeitpunkt den Eintrag wieder aus dem Repository entfernen oder kann der zukünftig so bleiben?
Irgendwann wird ja wahrscheinlich sendemail_1.56-5.2 als Standard beim Update mitkommen.

Gruß Reinhard
Die Backports als Quelle zu behalten, ist schon sinnvoll, da während der Lebensdauer einer Debian-Version im Main-Repo keine größeren Versionssprünge gemacht werden.
Daher sind manche Änderungen nur über Backports zu bekommen. Je älter die Debian-Version, desto mehr. Daher würde ich es nicht entfernen.

heikoh81

Zitat von: Funsailor am 23 Oktober 2023, 13:57:49## Start TLS if possible
        if ($conf{'tls_server'} == 1 and $conf{'tls_client'} == 1 and $opt{'tls'} =~ /^(yes|auto)$/) {
            printmsg("DEBUG => Starting TLS", 2);
            if (SMTPchat('STARTTLS')) { quit($conf{'error'}, 1); }
            if (! IO::Socket::SSL->start_SSL($SERVER,
               SSL_version => 'TLSv12:!SSLv2',
               SSL_verifycn_scheme => 'smtp',
               SSL_verifycn_name => $conf{'server'})) {quit("ERROR => TLS setup failed: " . IO::Socket::SSL::errstr(),

Danke, hat auch bei mir sendEmail wieder zum Laufen gebracht.
Ich verwende die Funktion an zu vielen Stellen, eine Umstellung z.B. auf die curl-Lösung wäre sehr sehr aufwändig.

Flachzange

Mies! Diesen Thread hätte ich mal früher finden sollen, dann hätte ich mir die Analyse des Problems ersparen können (aber man lernt ja immer etwas dabei). Google hat mich immer irgendwo hingeschickt, aber dass die Antwort so nah hier im Forum ist, hätte ich auch nicht erwartet.

Mein Problem ist etwas anders gelagert: Das neueste Testing-Docker-Image läuft zwar weiterhin auf Bullseye, aber die Perl-Umgebung ist neuer und genau das löst auch hier das Problem aus. Erst hatte ich den Verdacht, dass diese Perl-Umgebung die CA-Zertifikate nicht kennt, aber nach Analyse der Perl-Doku war dann klar, dass neuerding der Hostname für die Überprüfung angebeben werden muss bzw. wie in der "offiziellen Lösung" des Maintainers die verifycn-Config definiert werden muss.


Zitat von: heikoh81 am 25 Juli 2024, 22:49:14Ich verwende die Funktion an zu vielen Stellen, eine Umstellung z.B. auf die curl-Lösung wäre sehr sehr aufwändig.
Aus diesem Grund nutze ich das msg-Modul. Da definiert man einmal an zentraler Stelle, wie E-Mails, Push, etc. verschickt werden und wenn sich dann mal die Methode ändert, muss nur genau eine Stelle anfassen.

high8

Zitat von: juemuc am 23 Oktober 2023, 16:00:31Hallo zusammen,

die Version sendemail_1.56-5.2 kann man wie folgt installieren:

1. Repository ergänzen mit
sudo nano /etc/apt/sources.list2. folgende Zeile ergänzen:
deb http://deb.debian.org/debian bookworm-backports main3.
sudo apt update4.
sudo apt install sendemail/bookworm-backports
Danach funktioniert sendemail wieder.

Viele Grüße
Jürgen


Hallo - bei mir meckert sudo apt update darüber, dass die Source keinen Public Key hat. Wüsste aber auch nicht, wie dieser dem key-ring zuzufügen sein soll. Hab dazu nichts gefunden ...
Auch die Option allow-insecure=yes in der sources.list hat nichts gebracht. Was übersehe ich?

pi@raspberrypi:~ $ sudo apt update
OK:1 http://raspbian.raspberrypi.com/raspbian bookworm InRelease
Holen:2 http://deb.debian.org/debian bookworm-backports InRelease [59,0 kB]
OK:3 http://archive.raspberrypi.com/debian bookworm InRelease
Fehl:2 http://deb.debian.org/debian bookworm-backports InRelease
  Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131
Paketlisten werden gelesen... Fertig
W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Schlüssel ist im veralteten Schlüsselbund trusted.gpg gespeichert (/etc/apt/trusted.gpg), siehe den Abschnitt MISSBILLIGUNG in apt-key(8) für Details.
W: GPG-Fehler: http://deb.debian.org/debian bookworm-backports InRelease: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131
E: Das Depot »http://deb.debian.org/debian bookworm-backports InRelease« ist nicht signiert.
N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).

passibe

Googeln. z.B. hier: https://forums.raspberrypi.com/viewtopic.php?t=365928

War früher mal apt-key, jetzt einfach nur gpg.
Heißt:
gpg --keyserver keyring.debian.org --recv-keys <KEY ID>
<KEY ID> siehst du oben (0E98... und 6ED0...)

Edit: ggfs. sudo verwenden, bin mir gerade nicht sicher, ob man das braucht.

high8

VIELEN DANK.

Also mit dem verlinkten Topic hat's direkt geklappt
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9


Mit gpg hab ich komischerweise Fehler
pi@raspberrypi:~ $ sudo gpg --keyserver keyring.debian.org --recv-keys 0E98404D386FA1D9
gpg: Keine gültigen OpenPGP-Daten gefunden.
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 0
pi@raspberrypi:~ $ sudo gpg --keyserver keyring.debian.org --recv-keys 6ED0E7B82643E131
gpg: Keine gültigen OpenPGP-Daten gefunden.
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 0

Aber hauptsache es geht jetzt. Danke noch mal!!!