Socket.io + SSL + self-signed CA certificate gives error when connecting
node.js, socket.io, ssl
Solution
Don’t use self signed certificates. Just don’t, some browsers give you no way of accepting them when using WebSockets. And you look like a cheap d*ck for not buying a proper cert.
From They see me pollin, they hatin (p. 23). A presentation by Arnout Kazemier (3rdEden), core team member of Socket.IO.
Problem
I am running an https server using a certificate which was created using a self-signed CA certificate. Now I want to connect Socket.io client to the Socket.io server that is attached to the https server. Unfortunately, I get an error, telling me: ``` Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE at SecurePair.<anonymous> (tls.js:1271:32) at SecurePair.EventEmitter.emit (events.js:92:17) at SecurePair.maybeInitFinished (tls.js:883:10) at CleartextStream.read [as _read] (tls.js:421:15) at CleartextStream.Readable.read (_stream_readable.js:293:10) at EncryptedStream.write [as _write] (tls.js:330:25) at doWrite (_stream_writable.js:211:10) at writeOrBuffer (_stream_writable.js:201:5) at EncryptedStream.Writable.write (_stream_writable.js:172:11) at write (_stream_readable.js:547:24) at flow (_stream_readable.js:556:7) ``` Basically, this error tells me that the certificate could not be verified successfully. This is due to the fact the the according CA certificate is self-signed. When using a https request, I can specify CAs whom I trust. How can I make Socket.io connect in this case? PS: I am running Node.js 0.10.0 and Socket.io 0.9.13.