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

使用TLS的node.js mqtt客户端

黄泰宁
2023-03-14
问题内容

我正在尝试使用以下软件包使用TLS实现node.js mqtt客户端;

https://www.npmjs.com/package/mqtt#client

在不使用TLS的情况下运行mqtt客户端的代码如下;

var mqtt = require('mqtt')
var client  = mqtt.connect('mqtt://test.mosquitto.org')

client.on('connect', function () {
  client.subscribe('presence')
  client.publish('presence', 'Hello mqtt')
})

client.on('message', function (topic, message) {
  // message is Buffer 
  console.log(message.toString())
  client.end()
})

应该如何修改以上代码以在mqtt客户端上使用TLS?

mosca MQTT代理是使用以下命令独立运行的;

mosca --key ./tls-key.pem --cert ./tls-cert.pem --http-port 3000 --http-bundle --http-static ./ | pino

问题答案:

应该足以protocol将URL 的一部分更改为mqtts://

mqtts://test.mosquitto.org

自签名证书

connect使用自签名证书时,可以将以下选项传递给函数(仅用于测试目的):

mqtt.connect('mqtts://test.mosquitto.org', {
    rejectUnauthorized: false
});


 类似资料:
  • mosca MQTT代理作为独立运行,使用下面的命令;

  • 是否可以在AWS API网关上设置客户端TLS身份验证? 我并不是指API网关和Elastic Beanstalk之间,正如这里所描述的那样,而是指客户机和API网关本身之间,可能有一个自定义授权器(例如Lambda),在将请求转发给Elastic Beanstalk之前检查证书的有效性。

  • 本文主要描述了在 Kubernetes 上如何为 TiDB 集群的 MySQL 客户端开启 TLS。TiDB Operator 从 v1.1 开始已经支持为 Kubernetes 上 TiDB 集群开启 MySQL 客户端 TLS。开启步骤为: 为 TiDB Server 颁发一套 Server 端证书,为 MySQL Client 颁发一套 Client 端证书。并创建两个 Secret 对象,

  • filter.network.ClientSSLAuth TLS客户端身份认证配置概述 filter.network.ClientSSLAuth filter.network.ClientSSLAuth proto { "auth_api_cluster": "...", "stat_prefix": "...", "refresh_delay": "{...}", "ip_whi

  • TLS客户端身份认证配置参考。 { "name": "client_ssl_auth", "config": { "auth_api_cluster": "...", "stat_prefix": "...", "refresh_delay_ms": "...", "ip_white_list": [] } } auth_api_cluster (re

  • 客户端TLS认证过滤器架构概述 v1 API 参考 v2 API 参考 统计 每个配置的TLS客户端身份验证过滤器统计信息均以auth.clientssl.<stat_prefix>为根。 统计如下: 名称 类型 描述 update_success Counter 身份更新成功总数 update_failure Counter 身份更新失败总数 auth_no_ssl Counter 由于没有TL