我正在使用WS websocket个 node 库.js.目前我正在运行ws-server.现在我想通过使用安全连接来保护这个连接,也就是通过实现wss协议和库支持TLS连接.我搜索了一下,找到了plain to secure: wss和wss with self signed certificate.
两者都不是很详细,关于第二个链接的文章描述了具有自签名证书的wss.我想知道的是,仅仅创建自签名证书并部署到我的生产环境就足够了,还是需要像创建HTTPS服务器那样购买证书?
我正在使用WS websocket个 node 库.js.目前我正在运行ws-server.现在我想通过使用安全连接来保护这个连接,也就是通过实现wss协议和库支持TLS连接.我搜索了一下,找到了plain to secure: wss和wss with self signed certificate.
两者都不是很详细,关于第二个链接的文章描述了具有自签名证书的wss.我想知道的是,仅仅创建自签名证书并部署到我的生产环境就足够了,还是需要像创建HTTPS服务器那样购买证书?
如何创建安全的(TLS/SSL)Websocket服务器?
我在网上搜索如何使WebSocket在安全连接上工作的指南时发现了你的问题.由于这是在搜索结果中出现的,有可能我不是唯一一个出现在这个页面上的人.为了给每个人(包括future 的我)节省一些时间,我们来看看.
我有一个简单的 node .js websocket服务器,由einaros/ws供电,通过不安全的连接监听端口80.必须切换到安全连接.
基本上,你提供的第二个链接涵盖了我需要知道的一切.以下是我花了一些时间才弄明白的几件事:
为此,我需要.pem
个文件,但我从证书Provider 那里得到的只是一个简单的.crt
/.cert
文件,在生成最初的.csr
请求后,我还得到了一个私有的.key
文件.所以here's how to convert(credit到slf):
openssl rsa -in server.key -text > private.pem
openssl x509 -inform PEM -in server.crt > public.pem
我不清楚如何使用安全连接.由于我试图将SSL添加到现有的应用程序中,所以我希望避免重新进行操作.事实证明,我所要做的就是用https
实例的引用替换{port:80}
参数(有关如何初始化它的更多信息,请参阅链接).
var ws = require('ws').Server;
var wss = new ws({
server: httpsServer
});
我想知道的是,仅仅创建自签名证书并部署到我的生产环境就足够了,还是需要像创建HTTPS服务器那样购买证书?
对于公共服务器,您需要来自广受信任的CA的证书.使用免费Let's Encrypt或任何已知发行人的付费证书.这将确保你的用户不会收到任何浏览器安全警告,或者在不知道出了什么问题的情况下离开.
对于您的本地开发环境,或者所有连接的客户端都是已知的,并且在您的控制下,您可以创建自己的CA,请参见deliciousbrains.com/ssl-certificate-authority-for-local-https-development.