NodeJS 中的客户端 websocket 证书

2024-04-01

我有一个 NodeJS websocket 客户端应用程序,使用ws https://www.npmjs.com/package/ws https://www.npmjs.com/package/ws- 这个 NodeJS 应用程序作为客户端连接到 websocket 服务器。

我可以通过指定使用 HTTPSwss://作为协议。

如何使 TLS 连接使用客户端证书进行身份验证?

即 websocket 客户端应使用证书向服务器证明其身份。


I found:

it('connects to secure websocket server with client side certificate', function(done) {
  const server = https.createServer({
    cert: fs.readFileSync('test/fixtures/certificate.pem'),
    ca: [fs.readFileSync('test/fixtures/ca1-cert.pem')],
    key: fs.readFileSync('test/fixtures/key.pem'),
    requestCert: true
  });

  let success = false;
  const wss = new WebSocket.Server({
    verifyClient: (info) => {
      success = !!info.req.client.authorized;
      return true;
    },
    server
  });

  wss.on('connection', () => {
    assert.ok(success);
    server.close(done);
    wss.close();
  });

  server.listen(0, () => {
    const ws = new WebSocket(`wss://localhost:${server.address().port}`, {
      cert: fs.readFileSync('test/fixtures/agent1-cert.pem'),
      key: fs.readFileSync('test/fixtures/agent1-key.pem'),
      rejectUnauthorized: false
    });
  });

});

on https://github.com/websockets/ws/blob/14d9088391ac4495d04e64d76c3b83d4e75f80e2/test/websocket.test.js https://github.com/websockets/ws/blob/14d9088391ac4495d04e64d76c3b83d4e75f80e2/test/websocket.test.js

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeJS 中的客户端 websocket 证书 的相关文章

  • Socket.IO 消息不更新 Angular 变量

    我有一个 socket io 客户端 服务器设置 并在客户端上运行 AngularJS Server js var io require socket io server io on connection function socket s
  • Java FTPS 无法检索文件列表(FileZilla 客户端工作正常)

    我正在使用 Apache Commons Net v3 5 和 Java 8 连接到远程 FTPS 站点 即在互联网上 我可以轻松连接 Windows 10 计算机上的 FileZilla 客户端 但我的 Java 程序无法完成相同的步骤
  • Node.js 子进程

    我试图弄清楚这对于 node js 子进程来说是否是一个不错的用例 我有一款多人游戏 人们可以进行 1v1 比赛 我应该为每场比赛使用子进程吗 并不是真的需要 由于节点是基于事件的 并且单个进程将能够处理数千个这样的玩家对 您将为每个这样的
  • 如何在expressjs中调用另一个api?

    我有一个这样的API app get test req res gt console log this is test 和另一个API app get check req res gt I want to call test api wit
  • 通过 Websockets 进行 WebRTC 视频聊天

    我正在尝试使用 webRTC 和 WebSockets 进行信号发送来开发视频聊天应用程序 我的问题是 我不知道创建 RTCPeerConnection 并通过 webSocket 连接两个对等点 2 个浏览器 的过程是什么 至少在本地 我
  • Mongoose 使用 GeoJSON 点作为查询参数调用 geoNear 不起作用

    给定一个为包含 GeoJSON 位置的文档定义的模式 var BranchSchema new Schema location type type String required true enum Point LineString Pol
  • 使用 python-shell 持续交换数据

    我需要从节点运行一些 python 脚本 由于我的 python 脚本使用复杂的结构 我认为如果只加载这些结构一次 然后使用这些结构运行一些特定的脚本 任务 会更好 在节点上 我想永远运行一个脚本 或者直到我说它可以终止 并继续向该脚本发送
  • Flask-SocketIO 未使用 Gevent/Gevent-websocket

    我正在使用 Flask 和 Flask SocketIO 构建用于 websocket 通信的 Web 界面 数据 API 我想开始转向使用 Gevent Gevent websocket Gunicorn 以及最终使用 Nginx 进行负
  • Spring Boot 是否支持服务器名称指示(SNI)?

    Spring Boot 是否支持服务器名称指示 SNI 具体来说 运行嵌入式 Tomcat 服务器并打包为可执行 jar 文件的 Spring Boot 2 2 2 RELEASE 应用程序是否可以根据传入请求的主机名支持多个 SSL 证书
  • WebView ssl 错误

    对不起我的英语不好 我需要加载 url https 我有一些问题 当我尝试加载页面时 webView 给我错误 primary error 3 certificate Issued to CN my site com Issued by C
  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome
  • OkHttp javax.net.ssl.SSLPeerUnverifiedException:主机名domain.com未验证

    我几天来一直在努力让它发挥作用 我正在尝试通过以下方式连接到我的服务器https带有自签名证书 我认为现在没有任何页面或示例是我未读过的 我做了什么 按照本教程创建了 bks 密钥库 http blog crazybob org 2010
  • 将 AngularJS 应用程序部署到普通 Apache HTTP 服务器是一种常见的选择吗?

    我很好奇 AngularJS 应用程序通常部署到什么样的服务器上 Google 没有给出令人满意的答案 特别是 在我看来 AngularJS 应用程序只是静态文件的集合 因此在生产中将这样的应用程序部署到普通 Apache HTTP 服务器
  • 标签库支持命名空间:http://xmlns.jcp.org/jsf/core,但没有为名称定义标签:websocket

    我正在将 jsf 2 2 升级到 jsf 2 3 使用 Wildfly 11 0 0 Beta 作为服务器 我按照本网站上的说明进行操作 http arjan tijms omnifaces org p jsf 23 html 1396 h
  • 有没有办法让 npm install (命令)在代理后面工作?

    阅读有关代理变量的信息 npmrc文件 但它不起作用 尽量避免手动下载所有需要的包并安装 我这样解决了这个问题 我运行这个命令 npm config set strict ssl false 然后将 npm 设置为使用 http 而不是 h
  • socket.io 服务器的 Node.js 客户端

    我有一个正在运行的 socket io 服务器和一个带有 socket io js 客户端的匹配网页 一切正常 但是 我想知道是否可以在另一台机器上运行一个单独的 node js 应用程序 该应用程序将充当客户端并连接到提到的 socket
  • NodeJS 内存增长 - (系统)内存泄漏?

    我在我们的生活环境中遇到了奇怪的内存泄漏 其中 system 堆中的对象不断增长 堆转储 Here is a memory dump where the memory usage grew to 800MB 请注意 该内存保留在Genera
  • 在 Apache 上设置 websocket?

    所以我正在对 websockets 进行一些研究 我有几个问题似乎找不到明确的答案 如何在 Linux 服务器上设置 Web 套接字 有 Apache 模块吗 我可以吗have使用第 3 方 PHP 代码或类似代码 除了浏览器兼容性之外 问
  • 从React Redux中的package.json获取版本号(create-react-app)

    OP 编辑 如果其他人遇到此问题 该应用程序是使用创建的创建反应应用程序 https github com facebookincubator create react app 这限制导入到 src 文件夹内 但是如果你将react scr
  • 垃圾收集器不适用于 NodeJS / Chrome 中的类型化数组

    我最初将其记录为原项目中的一个问题 https github com nodejs help issues 3590 它立即转移到帮助主题 没有很好的解释 所以现在我想在这里提问 如果我们在 NodeJS v14 v16 v17 中运行以下

随机推荐

  • 黄瓜无法加载 2.1/gherkin_lexer_en

    每当我运行黄瓜功能时 我都会收到以下错误 但是 该脚本工作正常 但每次执行功能文件时都会出现此警告消息 这里有什么问题吗 C Automation PickLists Activities 2 RemoveActivity gt cucum
  • 函数中的变量

    我看到了下面的代码 第一次调用 next num 回报1 第二个返回2 define next num let num 0 lambda set num num 1 num next num 1 next num 2 我无法理解的是 num
  • JavaFX 中的字段验证[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我使用 fxml 创建了一份注册表单 现在我想实现字段验证功能 我正在尝试实现 TextField 的验证 但仍然没有得到它 不幸的是
  • CSS(位置:绝对+左:50%=最大宽度:50%)?

    我正在开发一个网站 但遇到了临时问题 我有一个div with CSS像这样 box position absolute width auto max width 75 left 50 transform translate 50 0 ms
  • Rails:如何添加目标空白的 link_to

    我是 Rails 3 的新手 我想将 target gt blank 添加到下面的 link to helper link to GOOGLE http www google com class btn btn large btn prim
  • 每次都会出现权限屏幕

    我想让我的 WinForms 应用程序使用 Microsoft 帐户的单点登录 SSO 功能 我创建了一个LiveApp https account live com developers applications我可以使用 LiveSDK
  • 我们如何在 Java 中进行异步 REST api 调用?

    我正在使用 Spring RestTemplate 并且想要调用另一个不返回任何响应正文的服务 所以 我不想等待回复 因此 只需即发即忘 然后继续剩余的代码 我正在考虑创建一个新线程来执行此操作 但不确定什么是正确的方法 如果您使用Java
  • 拉普拉斯滤波器是如何计算的?

    我不太明白他们是如何得出导数方程的 有人可以详细解释一下 甚至可以提供一个有足够数学解释的链接吗 拉普拉斯滤波器看起来像 拉普拉斯先生提出了这个方程 这就是拉普拉斯算子的简单定义 二阶导数之和 您也可以将其视为海森矩阵 https en w
  • VS 2015 Azure 发布向导不处理 ARM 创建的资源吗?

    我可以从发布向导中看到 ARM 云服务 但在使用管理员帐户时看不到 ARM 存储 我可以使用管理员帐户发布到 ARM 云服务 但必须指定 ASM 存储帐户 当使用 RBAC 访问权限仅限于包含上述云服务的资源组的帐户时 发布向导会提示云服务
  • 当从另一个函数调用 mongodb 时如何模拟 mongodb?

    我在嘲笑 mongodb 时需要帮助 我在用蒙戈莫克 https github com mongomock mongomock模拟 mongodb 我的项目结构是 my mongo py 代码 py my test py my mongo
  • MVC 控制器操作 - 处理 POST 和 GET,无需重复代码

    我一直在开发这个 MVC 3 Razor 应用程序 并且通常将视图模型用于我的视图 我的相当多的视图模型包含的信息不仅仅是我在表单中与之交互的特定实体 因此 我的 GET 操作处理程序将初始化视图模型并为每个属性提供预期值等 在我的 POS
  • R、Python 或 Octave:具有置信区间的经验分位数(逆 cdf)?

    我正在寻找一个返回样本分位数的内置函数和估计的置信区间在 MATLAB 以外的地方 MATLAB 的ecdf做这个 我猜 R 有这个内置功能 只是我还没有找到它 如果您有任何独立代码可以执行此操作 您也可以在此处指出它 尽管我希望找到作为更
  • 如何将多个 CSV 文件添加到 Kedro 的目录中?

    我有数百个 CSV 文件想要以类似方式处理 为了简单起见 我们可以假设它们都在 data 01 raw like data 01 raw 1 csv data 02 raw 2 csv 等 我宁愿不给每个文件一个不同的名称 并在构建管道时单
  • Wildfly 10.1 部署后停止部署

    我正在部署一个具有多个独立的 Web 应用程序war and ear 将文件发送到 Wildfly 10 1 服务器 我所做的是这样的 我清理deployments data content and tmp文件夹 然后复制所有必需的war
  • JQUERY AJAX - 如果成功则更改 $(this) 的类

    我有一个div 在该 div 内我有多个元素 有些元素具有 myClass 类 我也有一个按钮 单击时 foreach 循环会针对 div 中具有类 myClass 的每个元素运行 为每个元素发送一个ajaxCall 这些元素的文本颜色默认
  • 模型中的 Ruby on Rails 增量计数器

    我正在尝试从另一个模型增加我的用户表中的计数器 class Count lt ActiveRecord Base belongs to user after create update count def update count user
  • SonarQube 规则在启动时被禁用

    我最初在我的开发机器上设置了一个 Sonar 服务器 但后来在官方 Linux 机器上创建了一个服务器 目的是停止使用开发机器 在此过渡期间 我可能让两台服务器同时运行 指向同一个声纳数据库 现在我看到一些奇怪的行为 本地服务器运行良好 我
  • 持续交付中的生产数据迁移模式

    持续交付中生产中的关系数据库 和模式 迁移模式是什么 在许多传统开发中 DBA 从当前发布周期中创建的许多较小脚本中安排一个大型迁移脚本 但在 CD 中 开发人员可能希望立即将更改推送到生产中 而不是等待与其他脚本一起编译它们 我知道 Ra
  • 无法加载 Exchange powershell 管理单元:“Microsoft.Exchange.Data.Directory.Globals”的类型初始值设定项引发异常

    我有以下代码 用于创建一个加载了 Exchange 2010 管理单元的 PowerShell 运行空间 Dim runspaceConfig RunspaceConfiguration Create Dim snapInException
  • NodeJS 中的客户端 websocket 证书

    我有一个 NodeJS websocket 客户端应用程序 使用ws https www npmjs com package ws https www npmjs com package ws 这个 NodeJS 应用程序作为客户端连接到