msmtp - TLS-Zertifikatsüberprüfung ist fehlgeschlagen

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Kurz möchte ich mein Ziel vermitteln und zwar möchte ich einen Mail-Server auf einem RaspberryPi betreiben, welcher nur im lokalen Netzwerk fungiert.

    Bei mir haben sich einige Geräte im lokalen Netzwerk angesammelt, wie zum Beispiel mehrere NAS und mehrere RaspberryPi's welche fleißig Statusmeldungen per Mail an einen externen Email-Dienst-Anbieter senden. Per Mail-Client "Thunderbird", unter Windows betrieben, werden dann die Statusmeldungen per Mail vom externen Email-Dienst-Anbietern abgeholt. Dies erscheint mir sehr unpraktisch und auch gefährlich hinsichtlich, dass der Email-Dienst-Anbieter diese Mails zukünftig als Spam klassifizieren könnte, weil stündlich eine Mail an meine Mail-Adresse gesendet wird, weil zum Beispiel mein Temperatursensor ungültige Werte liefert.

    Somit erscheint mir ein Mail-Server welcher nur im lokalen Netzwerk arbeite sehr sinnvoll. Der Mailverkehr soll nur in eine Richtung arbeiten, vom "IT-Gerät" hin zum lokalen Mail-Server mit anschließender Abholung der Mails vom Mail-Server durch den Mail-Client "Thunderbird". Denn ich Erachte es nicht für notwendig auf eine Mail von meine NAS mit Weihnachtsgrüßen zu antworten, wenn mir diese einen zukünftigen Festplattenausfall ankündigt.

    Um mein Vorhaben in die Praxis umzusetzen und nach meiner Recherche ist es offensichtlich notwendig einen SMTP-Server aufzusetzen, welcher als Empfänger der Status-Mails im lokalem Netzt dient und einen IMAP- oder POP3-Server zu implementieren, welcher die eMails zur Abholung für meinen Mail-Client "Thunderbird" bereitstellt.


    Als SMTP-Server habe ich mich für "Postfix" entschieden und für den IMAP- oder POP3-Server für "Dovecot".

    Beide Dienste wurden auf einem Raspi 3B (bullseye) [192.168.178.80], ich nenne diesen einfachhalber "Mail-Server", installiert. Auf einen weiteren Raspi 3B (buster), ich nenne diesen einfachhalber "Mail-Sender", versende ich wie oben beschrieben seit einiger Zeit Status-Mails per "msmtp" über einen externen Email-Dienst-Anbieter erfolgreich.

    Schon der Versuch eine Mail vom Raspi "Mail-Sender" per msmtp an den Raspi "Mail-Server" zu versenden endete in der folgenden Fehlermeldung:

    Code
    pi@RPI-Test:~ $ cat /home/pi/test.txt |/usr/bin/msmtp anony.mous@privat.de
    msmtp: TLS-Zertifikatsüberprüfung ist fehlgschlagen: The certificate is NOT trusted. The certificate issuer is unknown.
    msmtp: Mail konnte nicht verschickt werden (Konto default aus /home/pi/.msmtprc)
    
    
    Ja, die Fehlermeldung beinhaltet im Original den Rechtschreibfehler "fehlgschlagen".

    Ich habe schon unzählige Stunden an Internetrecherchen und Konfigurations-Varianten verbraucht, leider konnte ich keine Lösung für mein Problem finden. Zumal die meisten Anleitungen oft nicht für den Mail-Verkehr innerhalb eines lokalen Netzwerkes beschreiben.

    Wie und auf welchem Raspi muss ich ein gültiges TLS-Zertifikat erzeugen oder kann ich die Verschlüsselung in einem lokalen Netzwerk eventuell deaktivieren, aber wie?

    Auch las ich einiges über "SMTP-fingerpint-Zertifikate", aber darüber fand ich noch wenigere Informationen um die Konfigurationen hierfür anzupassen und auch auf welchem System dieses "fingerpint-Zertifikat" erzeugt werden müssen.


    Meine Konfigurations-Dateien sind im Moment wie folgt:

    Raspi "Mail-Server" - Postfix - /etc/postfix/main.cf


    Raspi "Mail-Sender" - msmtprc - /home/pi/.msmtprc

    Ich bin auch für andere Lösungen offen, um Mails im lokalen Netz zu versenden, jedoch möchte ich wenn möglich den Mailversand per "msmtp" beibehalten und die Abholung der Mails mit dem Mail-Client "Thunderbird" aufrecht halten.

  • Mit den Konfigurations-Dateien habe ich mich einige Zeit beschäftigt. Dabei bin ich natürlich auch auf "tls off" gestoßen. Aber dies wäre zu einfach.


    Code: Fehlermeldung
    pi@RPI-Test:~ $ cat /home/pi/test.txt |/usr/bin/msmtp anony.mous@privat.de
    msmtp: der Server unterstützt keine Authentifizierung
    msmtp: Mail konnte nicht verschickt werden (Konto default aus /home/pi/.msmtprc)


    In Bezug auf die Zertifikate, habe ich nach folgender Anleitung

    Erstellen eines Server-Zertifikates | Linux-Know-how (checkmk.com)

    die Zertifikate auf dem Raspi "Mail-Server" erstellt.


    Die Zertifikats-Datei "cacert.pem" habe ich zum Raspi "Mail-Sender" in das Verzeichnis "/etc/ssl/certs/" kopiert.

    und die msmtp-Konfigurations-Datei auf dem Raspi "Mail-Sender" wie folgt angepasst:


    Code: .msmtprc
    $ vi /home/pi/.msmtprc
    
    ...
    # Set a list of trusted CAs for TLS. The default is to use system settings, but
    # you can select your own file.
    ## tls_trust_file /etc/ssl/certs/ca-certificates.crt
    tls_trust_file /etc/ssl/certs/cacert.pem
    ...


    Danach habe ich die Postfix-Konfigurations-Datei auf dem Raspi "Mail-Server" wie folgt angepasst:


    Ein anschließender Versuch eine Mail vom Raspi "Mail-Sender" zum Raspi "Mail-Server" zu versenden, zeigte folgende Fehlermeldung.

    Code: Fehlermeldung
    cat /home/pi/test.txt |/usr/bin/msmtp anony.mous@privat.de
    msmtp: TLS-Zertifikatsüberprüfung ist fehlgschlagen: der Zertifikatseigner stimmt nicht mit dem Hostnamen 192.168.178.80 überein
    msmtp: Mail konnte nicht verschickt werden (Konto default aus /home/pi/.msmtprc)

    Offensichtlich bin ich einige Schritte weiter, ob in die richtige Richtung ist eine andere Frage :).

    Wo liegt mein Fehler?


    Wurde die Zertifikats-Datei "cacert.pem" richtig verteilt und die zugehörigen Konfigurations-Dateien korrekt geändert?

    Oder habe ich eine Fehler beim anlegen der Zertifikats-Dateien gemacht?

  • Post by llutz ().

    The post was deleted, no further information is available.
  • Um das Zertifikat zu prüfen, z.B.:

    openssl s_client -starttls smtp -connect <mailserver-hostname>:587

    Dann siehst du was nicht zusammenpasst.


    Wenn alle Stricke reißen, msmtp kennt --tls-certcheck[=(on|off)]

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Das muss ja nichts mit dem Problem zu tun haben, aber openssl.cnf geht in Beitrag #4 ins Leere:

    Code
    -rw-r--r-- 1 root root    0 26. Feb 14:09 index.txt.old
    lrwxrwxrwx 1 root root   17 26. Feb 12:54 openssl.cnf -> openssl-1.0.0.cnf
    -rw-r--r-- 1 root root 4,6K 26. Feb 12:53 openssl-easyrsa.cnf
    -rw-r--r-- 1 root root 1,1K 26. Feb 13:58 req.pem


    Und in der verlinkten Anleitung steht:

    Quote

    ACHTUNG, jetzt kommt das Wichtige: Beim Server-Zertifikat ist der Common Name von entscheidender Bedeutung. Hier muss der DNS-Name stehen, unter dem der Client den Server anspricht! Wird das Zertifikat für eine HTTPS-Verbindung zu http://www.hinzag.eu verwendet, so muss der Common Name eben genau http://www.hinzag.eu heißen. Anderfalls wird der Browser das Zertifikat nicht akzeptieren, da er davon ausgehen muss, auf dem falschen Server gelandet zu sein

    Ist eine Diskrepanz beim Anlegen des Zertifikats diesbezüglich eventuell die Ursache für

    msmtp: TLS-Zertifikatsüberprüfung ist fehlgschlagen: der Zertifikatseigner stimmt nicht mit dem Hostnamen 192.168.178.80 überein

    ?