2017-07-28 4 views
1

Ich versuche etwas sehr einfaches zu machen und es funktioniert einfach nicht für mich. Ich habe eine einfache Knoten-RED Fluss mit einem inject Eingangsknoten und eine E-Mail-Ausgangsknoten:Node-RED und nodemailer - Fehler: Das erste Zertifikat konnte nicht verifiziert werden

inject to email nodes

Die Eigenschaften des E-Mail-Knoten wie folgt aussehen:

email config window

Der Fehler sagt :

"7/28/2017, 11:43:28 AM node: [email protected] msg : error "Error: unable to verify the first certificate"

Ich bin in der Lage, nicht authentifizierte E-Mail über diesen Server per Telnet manuell zu senden. Selbst wenn ich Kontoguthaben eingebe, gibt es mir den gleichen "Fehler: das erste Zertifikat kann nicht verifiziert werden".

Fehle ich etwas einfaches?

Antwort

1

Das Problem besteht darin, dass der Mail-Server, mit dem Sie eine Verbindung herstellen, SSL verwendet und das von ihm bereitgestellte Zertifikat nicht von einer vertrauenswürdigen Zertifizierungsstelle in der von Ihnen verwendeten Node.JS-Implementierung signiert ist.

Ich schätze, es ist ein selbstsigniertes Zertifikat.

Der Fehler besagt, dass Node.JS das erste Zertifikat in der dargestellten Kette nicht überprüfen kann.

Meine beste Vermutung ist, dass Nodemailer (die unter der Decke durch den E-Mail-Knoten verwendet wird) sieht die STARTTLS Option aufgeführt, wenn sie den Befehl EHLO senden, wie es die Verbindung zum Mail-Server startet und versucht, die Verbindung zu aktualisieren zu einem, der sicher ist.

Während ich würde wirklich normalerweise nicht dieses empfehlen, können Sie Node.JS die cert Überprüfung durch den Export der folgenden Umgebungsvariable vor dem Start Node-RED deaktivieren:

NODE_TLS_REJECT_UNAUTHORIZED=0 

Dies schaltet alle Zertifikatsprüfung, so Bei den mittleren Angriffen für jede TLS/SSL-Verbindung von Node-RED sind Sie offen für den Menschen.

Die wirkliche Lösung hier ist, ein richtiges Zertifikat für den Mail-Server zu bekommen, vielleicht etwas aus dem Letsencrypt-Projekt, besonders wenn dieser Mail-Server in irgendeiner Weise mit dem Internet verbunden ist.

0

Ich habe nicht genug Ruf um einen Kommentar zu schreiben, aber ich bin das Hinzufügen dieser Linie für die vorherige Antwort, jemand könnte es brauchen,

diese Fehler in Node.js Programm zu umgehen, geben Sie:

process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"; 
Verwandte Themen