Skip to content

Instantly share code, notes, and snippets.

@kylecarbs
Created May 31, 2023 17:31
Show Gist options
  • Save kylecarbs/3eeb7d35a5fd6d9828e675f467144947 to your computer and use it in GitHub Desktop.
Save kylecarbs/3eeb7d35a5fd6d9828e675f467144947 to your computer and use it in GitHub Desktop.
Failure case of Electron running a client as Node with a custom certificate
const tls = require("tls")
const cert = `-----BEGIN CERTIFICATE-----
MIIDGjCCAgKgAwIBAgIQWRK256qtZINE+pTbJNsmEzANBgkqhkiG9w0BAQsFADAU
MRIwEAYDVQQDDAlsb2NhbGhvc3QwIBcNMjMwNTMwMTY0MDExWhgPMjEyMzA1MzAx
NjUwMTJaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAMrjcEx16w9OgjNIpB8Zr8gjf3PvREgmm2TKqDgqfOLKsYfi
xDgied2HuF0xEvGmqbf/3jim1RKMwuZ/MO2sIUBQHk+2zMnsmGpS6g8/wD0FypHu
TeO4d/m1Sq4LDX4cgH342H8lhM3Tt6EYhIhEwMS9PCq16bQvrrOoEFAgRgfrT0Fk
wfw67qFx3HMFVVwAassLY9mQ3da75uo4gr5Q/8xhDx8ZlVK2rTved3Sw8qP77y55
YUIkAK28bSIQWediDeUfbljOk8eIWie/STJi2zOAxqzwb+i+gIAcPgjJvxGf2pEh
K4pnL1NBBVl+r1cMZfKbGGm26e0fPwqAUL/84i0CAwEAAaNmMGQwDgYDVR0PAQH/
BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAUBgNVHREEDTAL
gglsb2NhbGhvc3QwHQYDVR0OBBYEFGv03uf4H4Ul1ykRcKnIEcDoN3nyMA0GCSqG
SIb3DQEBCwUAA4IBAQBZzLz6SsPOzmSnB6dEtn/sGDBYmir73TJya3RjCO4fIbW3
U1t4zH4pU26HQ5jZDI8+Q4ilsaUXAk9SocAtD+M1V9gWuHI7OMb6+EmaLIqKrq4F
5RaCrHf+uq6rvRYZET5xvpFqUs8YBOWpRDCuuZqIW9gAi/cVKvdnuyb7wqHPxf5O
hvodWrmagcK4qQ5jHdIclSVL0+5Nc1PExKNjpnNiv5HHhNRPMCTYQup6qoaL/WMd
bXjR62RIyyHkebsTW/98XxrtqZuF5ZvDzMIHcfQGBa/3kPHrQfvA+esXknfuW8zL
N9LHAcmGiqmb1UNcvskD8xsUOVtWwhmQml+zBBJU
-----END CERTIFICATE-----`
const sock = tls.connect({
host: "127.0.0.1",
port: 3000,
servername: "localhost",
ca: [cert],
})
sock.on("error", (err) => {
console.error(err)
})
sock.on("secureConnect", () => {
console.log("Working!")
})
const https = require('https');
const fs = require('fs');
const cert = `-----BEGIN CERTIFICATE-----
MIIDGjCCAgKgAwIBAgIQWRK256qtZINE+pTbJNsmEzANBgkqhkiG9w0BAQsFADAU
MRIwEAYDVQQDDAlsb2NhbGhvc3QwIBcNMjMwNTMwMTY0MDExWhgPMjEyMzA1MzAx
NjUwMTJaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAMrjcEx16w9OgjNIpB8Zr8gjf3PvREgmm2TKqDgqfOLKsYfi
xDgied2HuF0xEvGmqbf/3jim1RKMwuZ/MO2sIUBQHk+2zMnsmGpS6g8/wD0FypHu
TeO4d/m1Sq4LDX4cgH342H8lhM3Tt6EYhIhEwMS9PCq16bQvrrOoEFAgRgfrT0Fk
wfw67qFx3HMFVVwAassLY9mQ3da75uo4gr5Q/8xhDx8ZlVK2rTved3Sw8qP77y55
YUIkAK28bSIQWediDeUfbljOk8eIWie/STJi2zOAxqzwb+i+gIAcPgjJvxGf2pEh
K4pnL1NBBVl+r1cMZfKbGGm26e0fPwqAUL/84i0CAwEAAaNmMGQwDgYDVR0PAQH/
BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAUBgNVHREEDTAL
gglsb2NhbGhvc3QwHQYDVR0OBBYEFGv03uf4H4Ul1ykRcKnIEcDoN3nyMA0GCSqG
SIb3DQEBCwUAA4IBAQBZzLz6SsPOzmSnB6dEtn/sGDBYmir73TJya3RjCO4fIbW3
U1t4zH4pU26HQ5jZDI8+Q4ilsaUXAk9SocAtD+M1V9gWuHI7OMb6+EmaLIqKrq4F
5RaCrHf+uq6rvRYZET5xvpFqUs8YBOWpRDCuuZqIW9gAi/cVKvdnuyb7wqHPxf5O
hvodWrmagcK4qQ5jHdIclSVL0+5Nc1PExKNjpnNiv5HHhNRPMCTYQup6qoaL/WMd
bXjR62RIyyHkebsTW/98XxrtqZuF5ZvDzMIHcfQGBa/3kPHrQfvA+esXknfuW8zL
N9LHAcmGiqmb1UNcvskD8xsUOVtWwhmQml+zBBJU
-----END CERTIFICATE-----`
// This is a self-signed throwaway certificate for localhost!
const key = `-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDK43BMdesPToIz
SKQfGa/II39z70RIJptkyqg4KnziyrGH4sQ4Inndh7hdMRLxpqm3/944ptUSjMLm
fzDtrCFAUB5PtszJ7JhqUuoPP8A9BcqR7k3juHf5tUquCw1+HIB9+Nh/JYTN07eh
GISIRMDEvTwqtem0L66zqBBQIEYH609BZMH8Ou6hcdxzBVVcAGrLC2PZkN3Wu+bq
OIK+UP/MYQ8fGZVStq073nd0sPKj++8ueWFCJACtvG0iEFnnYg3lH25YzpPHiFon
v0kyYtszgMas8G/ovoCAHD4Iyb8Rn9qRISuKZy9TQQVZfq9XDGXymxhptuntHz8K
gFC//OItAgMBAAECggEARLYACzUINXfeKmYYhxvY50v2VxoaIuFIUTs8+0CQaPJC
a4XF9EjgwsC7FHyRMNvDsLfr133QvWaEfzFmLafU3wYDLfX3pw8Ek0WfVSi+/yud
7gwpvsxzfVMDhqvhlusqLP+AupbHQjnIf7tg7xFxw29fGAvhqQ9Y+Ckb1TcI4Jca
hzvm+6+cKeVFtrjGoMn3tY6Rb6lLnKJlWf84/Tr8OLsBIqMx+a4CiFeQ0qD1sx5d
p7QQ5oJr3Fv+tXDFp5Df+4Lu6czA1V3qNmlsDr9ANZnlam72H0HxO0MsJXKT7cFC
JV9M1Wtaf9mrSXofvX2vi8py8jengILeZDULSNvI1QKBgQD6MOGuY3jtditrXASI
puM+odTdL9vC7hL6VB2jNMz+ndNQUUkDucYGDgkueTICBq5bAZyixn78dhAgkXTY
+Lx14woqjFVn7N/2nCaVE0X/GkeJyYlPdkpe7UqPlZajy0mjHTfVS9HhFLwFqj7N
rWPfVxI6H+Ue4daZjiR6Td6oHwKBgQDPmWTjpH4jtTrXyjET1PnTgO1F2ZmpimoW
HcBRo5sr5WDp6UAnhPx2J6lHzb4S7XbogB5sibNz83wkr7WdpfbVeBQDpiNB/47w
GK+popM/HuigKKNLPHYtt3JhurbkI0VX5BlLHgUtFMxzfExtmWbckOCNxb8uJ6o8
4cMELgIcMwKBgQCjZh1euZSW8eB1o4lKfkRX+XV+Z+1NKBO47grVNnzTpdwGzq+z
ATd1aOFSOtEQRbDFuw3DuYPh+nGZ86WutvTOwVM4aqK01x2GgIEqR4Ylj9I9CSTm
gskbqjpSAE579x7GqyR156jRKauKv5940M8zZDiBQadwPercKttkDUtn3QKBgEJL
yUVNZZ7/pD//aPbdX77kgGF7ITBcbI6Nh7pKliZJhU6N15gHRxxwhAXTNW0T+pI7
P/wHaZCQ5EdO+Z/TvWTkiPe1WbMc6sfQCmEQ8xcIRt/GuocvUso8uEFvgDKQ9Pch
d9ZeSubfqn8C5eFmSMwNVDjSOsCBmEMDEeVG0BOzAoGBAKDmM3OBxctMyqDKWvvE
TVWYtNroLgeosWncjXvDUfNqU5+TjcICXTplXf6PIOX93uJmy3IWbxFDrpzmEFe7
lxDUEjngAlF6tx0bX0XdnU6h3LEMNGGCwIM+WdF/rlgYFkSx5eQDol9lWkRFnuJ7
v0hB2Y9U1G3VLcjLr7HfgGk7
-----END PRIVATE KEY-----`
const server = https.createServer({
key: key,
cert: cert,
}, (_, res) => {
res.writeHead(200);
res.end('Hello, world!');
});
server.listen(3000, "127.0.0.1", () => {
console.log('HTTPS server running on port 3000');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment