Eu finalmente descobri isso.
Lado do servidor Eu corro o seguinte código no meu aplicativo nodeJS:
var options = {
key: fs.readFileSync('/home/certificates.key'),
cert: fs.readFileSync('/home/certificates.crt'),
requestCert: true
};
var server = require('https').createServer(options, app);
var io = require('socket.io').listen(server);
server.listen(8000);
console.log('Server started at port: 8000');
Lado do cliente Eu sirvo uma página usando o meu servidor Apache, que simplesmente usa o seguinte para estabelecer a conexão.
var socket = io.connect('example.com:8000', {secure: true});
Eu nunca percebi que você poderia rodar ssl em uma porta como a 8000 dessa maneira.