当前位置: 首页 > 面试题库 >

如何创建安全(TLS / SSL)Websocket服务器

黎震博
2023-03-14
问题内容

我正在使用node.js的WSwebsocket库。目前,我正在运行ws服务器。现在,我想通过使用安全连接(即通过实施wss协议以及库支持TLS连接)来保护此连接。我进行了一些搜索,发现这很容易确保安全:wss和具有自签名证书的wss。

两者都不是很详细,第二个链接上的文章介绍了带有自签名证书的wss。我想知道的是,仅创建自签名证书并部署到我的生产环境是否就足够了?还是我需要像创建HTTPS服务器时一样购买证书?


问题答案:

如何创建安全的(TLS / SSL)Websocket服务器

我在网上搜索有关如何使网络套接字在安全连接上工作的指南时找到了您的问题。由于这是在搜索结果中出现的,因此我不是唯一一个最终显示在此页面上的人。为了节省大家(包括将来的我)一些时间,请继续。

问题

我有一个简单的node.js websocket服务器,由einaros /
ws
驱动,通过不安全的连接监听端口80。不得不将其切换到安全连接。

解决方案

基本上,您提供的第二个链接涵盖了我需要了解的几乎所有内容。但是,以下几件事使我花了一些时间来弄清楚:

  • .pem为此,我需要这些文件,但是从证书提供者那里得到的只是一个简单的.crt/ .cert文件,.key在生成初始.csr请求之后,我还拥有一个私有文件。

    openssl rsa -in server.key -text > private.pem
    

    openssl x509 -inform PEM -in server.crt > public.pem

  • 我不清楚如何ws使用安全连接。由于我试图将SSL添加到现有应用程序中,因此我希望避免重复执行操作。事实证明,我要做的就是用对实例{port:80}的引用替换参数https(有关如何初始化实例的更多信息,请参见链接)。

        var ws = require('ws').Server;
    var wss = new ws({
        server: httpsServer
    });

参考资料

  • github.com/websockets/ws/blob/master/examples/ssl.js
  • chovy.com/web-development/self-signed-certs-with-secure-websockets-in-node-js

您的问题2

我想知道的是,仅创建 自签名证书 并部署到我的 生产 环境是否足够,还是我需要像创建HTTPS服务器时一样购买证书?

强调我的。是的,我建议您从可信任的机构购买证书。这将确保您的用户不会收到任何浏览器安全警告,甚至不会知道什么地方出了错就不会离开。



 类似资料:
  • nodejs版本:0.8.6 我使用openssl创建了一个ssl csr文件,并使用以下命令:openssl req-nodes-newkey rsa:2048-keyout myserver.key-out myserver.csr null 我试着检查这个问题:openssl s_client-connect my_dns:443//my_dns当然指向我的nodejs服务器 结果:已连接(

  • 我加载的证书对“每个人”都有完全的特权。我已经尝试了我在互联网上看到的每一个解决方案,但仍然得到错误。 下面是我创建请求的代码: 获取证书的代码(我也尝试过使用pfx): 第二个编辑:我可以让它在SoapUI中工作,但不能在。NET应用程序中工作,只需从SOAP UI中的文件系统中加载SSL证书即可。

  • 问题内容: 是否有任何教程或指南显示如何用PHP编写一个简单的Websockets服务器?我曾尝试在Google上寻找它,但没有找到很多。我找到了phpwebsockets,但是现在已经过时了,不支持最新的协议。我尝试自己更新它,但似乎不起作用。 和客户: 如果我的代码有任何错误,您可以帮我解决它吗?Firefox中的Concole说 问题答案: 我和您最近在同一条船上,这是我的工作: 1)我使用

  • 我的Python secure websocket客户端代码给出了以下异常: [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_SSL.C:748) 我已经创建了我的私有证书和签名证书,但我无法使用Python脚本连接到它,如下所示: 我的HTTPS/WSS服务器脚本用tornado用python编写,如下所示: 用于创建SSL签名证书的步骤:

  • 问题内容: 我讨厌问这样一个模糊的问题,但是我很难找到一个简单的例子。这是我到目前为止的内容: 我可以找到的嵌入式Jetty示例始终显示如下内容,以启动运行的Server实例,但我不知道如何实例化WebSocketServlet。 如何创建可以处理WebSocket连接请求的嵌入式服务器? 问题答案: 更新:2013年12月2日 有关带有WebSocket的嵌入式码头的最新示例,请参见: http

  • System.AggregateException HResult=0x80131500 Message=出现一个或多个错误。source=mscorlib stacktrace:at system.threading.tasks.task.throwifexception(Boolean includeTaskCanceledExceptions)at system.threading.task