我正在运行使用使用自签名CA证书创建的证书的https服务器。
现在,我想将Socket.io客户端连接到连接到https服务器的Socket.io服务器。不幸的是,我得到一个错误,告诉我:
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)
基本上,此错误告诉我无法成功验证证书。这是由于相应的CA证书是自签名的。使用https请求时,我可以指定我信任的CA。
在这种情况下,如何使Socket.io连接?
PS:我正在运行Node.js 0.10.0和Socket.io 0.9.13。
不要使用自签名证书。只是不要,某些浏览器在使用WebSockets时无法让您接受它们。而且您看起来像是便宜的d * ck,因为没有购买适当的证书。
从他们看到我的花粉,他们就讨厌(第23页)。Socket.IO核心团队成员Arnout Kazemier(3rdEden)的演示。