17

So I'm doing this app in Node.js with express and I have this error Error: self signed certificate in certificate chain

at Error (native)
    at TLSSocket.<anonymous> (_tls_wrap.js:1092:38)
    at emitNone (events.js:86:13)
    at TLSSocket.emit (events.js:185:7)
    at TLSSocket._finishInit (_tls_wrap.js:610:8)
    at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:440:38) code: 'ESOCKET', command: 'CONN' }
POST /contact/send - - ms - -

I have change the mail service and also disavaible my antivirus, I cant find the sokution online, and a little bit of help is good for everybody

Thank youu

1 Answers1

54

There is a good discussion about using Nodemailer with self-signed certificates in this GitHub issue. Specifically, this post can help get rid of the error message:

If you know that the host does not have a valid certificate you can allow it in the transport settings with tls.rejectUnauthorized option:

var transporter = nodemailer.createTransport(smtpTransport({ host: "outmail.abc.co.th", // hostname secure: false, // use SSL port: 25, // port for secure SMTP auth: { user: "username@abc.co.th", pass: "passwordmail" }, tls: { rejectUnauthorized: false } }));

However, if you believe the mail services you are trying to use have valid certificates, you might have a local issue with your machine or network.

ty2k
  • 761
  • 5
  • 12
  • 1
    OP, you should accept this as the answer, this clearly works – Lee Merlas Jul 11 '21 at 20:01
  • @ty2k, any ideas if there are some security concerns using this? I have problems when the nodemailer is sending emails locally, but on the server, there is no issue with the certificates. Additionally, I have started to see this error after reinstalling my machine, but I am pretty sure that I have never configured a certificate before for this. – Vitomir Jun 26 '23 at 13:23