Я запускаю сервер https, используя сертификат, созданный с использованием самоподписанного сертификата ЦС.Socket.io + SSL + самоподписанный сертификат CA дает ошибку при подключении
Теперь я хочу подключить клиент Socket.io к серверу Socket.io, который подключен к серверу https. К сожалению, я получаю сообщение об ошибке, говоря мне:
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 я могу указать CAs, которым я доверяю.
Как я могу подключить Socket.io в этом случае?
PS: Я запускаю Node.js 0.10.0 и Socket.io 0.9.13.
Хорошо, это отвечает на вопрос о том, почему это не поддерживается. Спасибо, что указали это! (Хотя я думаю, что его взгляд здесь немного узкий) –
так как это решает проблемы разработки/постановки? Я должен купить сертификат для всех моих промежуточных серверов, Vagrant VM и производственные серверы? –
Node.js 0.10 настроен на автоматическое отклонение SSL-сертификатов, которые самоподписаны. Вы можете «отменить» это для разработки, добавив следующую переменную ENV: «NODE_TLS_REJECT_UNAUTHORIZED = 0' Кроме того, да, у меня есть узкий когда речь заходит о SSL;) Но, как вы могли убедиться, самозаверяющие сертификаты вызывают много проблем, n быть предотвращено с надлежащим сертификатом. Что касается разработки/постановки, купите подстановочный знак ssl cert или отредактируйте свой '/ etc/hosts'? ;) – 3rdEden