Node.js 原始证书未连接的AWS IoT还原内容

Node.js 原始证书未连接的AWS IoT还原内容,node.js,amazon-web-services,aws-cli,aws-iot,Node.js,Amazon Web Services,Aws Cli,Aws Iot,我使用AWS Nodejs cli在AWS上创建内容(使用api创建的内容+证书) 我有一个测试脚本连接到mqqtt服务器并发送hearbeat消息,一切正常 我移除设备(非活动证书、分离证书、分离策略和删除内容)以测试意外删除 我尝试使用以前的名称创建证书,但没有创建新的证书,而是上载原始certificate.pem(exaclty the same certificate.pem),附加策略和设备(与原始名称相同),最后激活证书。这里没有错误,在物联网控制台上看起来一切正常 但是,当我运行

我使用AWS Nodejs cli在AWS上创建内容(使用api创建的内容+证书)

我有一个测试脚本连接到mqqtt服务器并发送hearbeat消息,一切正常

我移除设备(非活动证书、分离证书、分离策略和删除内容)以测试意外删除

我尝试使用以前的名称创建证书,但没有创建新的证书,而是上载原始certificate.pem(exaclty the same certificate.pem),附加策略和设备(与原始名称相同),最后激活证书。这里没有错误,在物联网控制台上看起来一切正常

但是,当我运行测试脚本时,它无法连接到mqtt服务器(与decive没有证书或已删除时的行为相同):

2021-04-23T15:02:51.204调试设备:室内夏季连接。。。
{
私钥:,
客户证书:,
卡塞特:,
clientId:“室内夏季”,
主机:“xxxxxxxxx.iot.ap-southest-1.amazonaws.com”,
是的,
keepalive:300,
用户名:'?SDK=JavaScript&Version=2.2.6',
重新连接时间:1000,
fastDisconnectDetection:正确,
重新订阅:错误,
协议:“mqtts”,
港口:8883,
ca:,
关键字:,
证书:,
requestCert:对,
拒绝:对
}
正在尝试新的mqtt连接。。。
连接丢失-将在1秒后尝试重新连接。。。
2021-04-23T15:02:52.456调试设备:室内夏季重新连接
连接丢失-将在2秒内尝试重新连接。。。
2021-04-23T15:02:54.617调试设备:室内夏季重新连接
连接丢失-将在4秒内尝试重新连接。。。
2021-04-23T15:02:58.778调试设备:室内夏季重新连接
连接丢失-将在8秒内尝试重新连接。。。
2021-04-23T15:03:06.945调试设备:室内夏季重新连接
连接丢失-将在16秒内尝试重新连接。。。
2021-04-23T15:03:23.145调试设备:室内夏季重新连接
连接丢失-将在32秒内尝试重新连接。。。
2021-04-23T15:03:55.309调试设备:室内夏季重新连接
连接丢失-将在64秒内尝试重新连接。。。
要恢复证书,我遵循以下步骤:(
注册一个没有注册CA(CLI)的客户端证书

编辑: 现在使用AWS控制台:

  • 创造事物
  • 创建证书(单击一次)
  • 激活
  • 附加保险单
  • 测试mqtt连接:全部正常
现在:

  • 删除证书
  • 上传相同的
    00000000-certificate.pem
    文件
  • 激活
  • 测试mqtt连接:失败(与原始消息相同)

我错过了一个步骤?

我从AWS支持部门得到了答案,这不是物联网核心问题,而是客户端库:

对于使用“无CA注册”注册的证书 (在没有注册CA的情况下注册客户端证书),如果 连接到AWS IoT时,它必须发送SNI(服务器名称标识符)。 但是,对于V1 AWS JS设备SDK[1],SDK不发送SNI。你 需要使用V2 SDk[2]

有关SNI的更多信息:

2021-04-23T15:02:51.204 DEBUG Device:indoor-summer connecting...
{
  privateKey: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 52 53 41 20 50 52 49 56 41 54 45 20 4b 45 59 2d 2d 2d 2d 2d 0a 4d 49 49 45 70 51 49 42 41 41 4b 43 41 51 45 41 71 46 ... 1629 more bytes>,
  clientCert: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d 0a 4d 49 49 44 57 54 43 43 41 6b 47 67 41 77 49 42 41 67 49 55 65 58 ... 1170 more bytes>,
  caCert: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d 0a 4d 49 49 44 51 54 43 43 41 69 6d 67 41 77 49 42 41 67 49 54 42 6d ... 1138 more bytes>,
  clientId: 'indoor-summer',
  host: 'XXXXXXXXXX.iot.ap-southeast-1.amazonaws.com',
  debug: true,
  keepalive: 300,
  username: '?SDK=JavaScript&Version=2.2.6',
  reconnectPeriod: 1000,
  fastDisconnectDetection: true,
  resubscribe: false,
  protocol: 'mqtts',
  port: 8883,
  ca: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d 0a 4d 49 49 44 51 54 43 43 41 69 6d 67 41 77 49 42 41 67 49 54 42 6d ... 1138 more bytes>,
  key: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 52 53 41 20 50 52 49 56 41 54 45 20 4b 45 59 2d 2d 2d 2d 2d 0a 4d 49 49 45 70 51 49 42 41 41 4b 43 41 51 45 41 71 46 ... 1629 more bytes>,
  cert: <Buffer 2d 2d 2d 2d 2d 42 45 47 49 4e 20 43 45 52 54 49 46 49 43 41 54 45 2d 2d 2d 2d 2d 0a 4d 49 49 44 57 54 43 43 41 6b 47 67 41 77 49 42 41 67 49 55 65 58 ... 1170 more bytes>,
  requestCert: true,
  rejectUnauthorized: true
}
attempting new mqtt connection...
connection lost - will attempt reconnection in 1 seconds...

2021-04-23T15:02:52.456 DEBUG Device:indoor-summer reconnect
connection lost - will attempt reconnection in 2 seconds...

2021-04-23T15:02:54.617 DEBUG Device:indoor-summer reconnect
connection lost - will attempt reconnection in 4 seconds...

2021-04-23T15:02:58.778 DEBUG Device:indoor-summer reconnect
connection lost - will attempt reconnection in 8 seconds...

2021-04-23T15:03:06.945 DEBUG Device:indoor-summer reconnect
connection lost - will attempt reconnection in 16 seconds...

2021-04-23T15:03:23.145 DEBUG Device:indoor-summer reconnect
connection lost - will attempt reconnection in 32 seconds...

2021-04-23T15:03:55.309 DEBUG Device:indoor-summer reconnect
connection lost - will attempt reconnection in 64 seconds...