Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I trust a self signed certificate from an electron app?

I have an electron app that syncs with a server I own at a https://XXX.XX.XX.XXX:port that has a self signed certificate. How can I trust that certificate from my electron app?

Right now I get:

Failed to load resource: net::ERR_INSECURE_RESPONSE
like image 298
jtlindsey Avatar asked Aug 17 '16 01:08

jtlindsey


3 Answers

You need to put the following code into your "shell" (core electron init) file:

// SSL/TSL: this is the self signed certificate support
app.on('certificate-error', (event, webContents, url, error, certificate, callback) => {
    // On certificate error we disable default behaviour (stop loading the page)
    // and we then say "it is all fine - true" to the callback
    event.preventDefault();
    callback(true);
});

This would allow insecure (invalid) certificates like self-signed one.

⚠ Please note that this is NOT a secure way of connecting to the server.

For more, check the documentation:
https://electron.atom.io/docs/api/app/#event-certificate-error

like image 108
Peter Stegnar Avatar answered Oct 16 '22 07:10

Peter Stegnar


Subscribe to the certificate-error event emitted by the app module and verify your self signed cert in the event handler.

like image 43
Vadim Macagon Avatar answered Oct 16 '22 07:10

Vadim Macagon


Try this if 'certificate-error' event doesn't work:

if (process.env.NODE_ENV === 'DEV') {
  process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;
}
like image 4
Joe Avatar answered Oct 16 '22 08:10

Joe