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
For socket.io 1.0 (not sure about 0.9), there are details of how to get the node client to connect to an invalid cert here: https://stackoverflow.com/a/24235426. (Thanks to @3rdEden's comment above.) I find that self-signed SSL certs can be convenient for development servers.
Check here on how to use self-signed certificates for Certificate Signing Request
. You must specify the following to allow connections using self signed certificates:
To create a self-signed certificate with the CSR, do this:
openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem
In the client the socket should be used as
var socket = io.connect('https://localhost', {secure: true});
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.
four years later but for any finding this post like me if you need to force client socket to not reject a self-signed server cert you need rejectUnauthorized: false
as in
const socket = require('socket.io-client')('https://192.168.0.31', { transports: ['websocket'], rejectUnauthorized: false })
from https://github.com/socketio/engine.io-client#methods
also there is now a good source for free certs so now you don't even have to be "cheap d*ck" https://letsencrypt.org/