mosquitto_pub porblem设置TLS选项

时间:2018-02-02 05:31:40

标签: libmosquitto

我正在关注https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/并在执行以下命令时遇到问题:

  

$ mosquitto_pub --cafile root.cert --cert deviceCertAndCACert.crt   --key deviceCert.key -h .iot.us-east-1.amazonaws.com -p 8883 -q 1 -t foo / bar -i anyclientID --tls-version tlsv1.2 -m“Hello”-d < / p>

它给了我错误

Error: Problem setting TLS options.

我找不到这个错误是什么意思以及如何解决它。我需要在unbutu 16.04上“安装”TLSv1.2吗?实际上没有关于如何安装TLS1.2的信息。有关于apache或nginx等启用TLSv1.2的一些信息。是否在Unbutu中内置了TLSv1.2?

4 个答案:

答案 0 :(得分:1)

这仍然是mosquitto github存储库中的开放issue。错误消息不清楚。

如果您遵循他们的JITR或JITP(自动配置AWS IoT资源(如证书,策略,事物等)的新方法),则应使用最新的首选certificates。本教程中的一个证书使用的是旧证书,即 VeriSign Class 3 Public Primary G5根CA证书

您应该使用ATS CA证书。像这样一个 RSA 2048 bit key: Amazon Root CA 1 (下载并保存为MTKView。这应该可以解决错误:设置TLS选项时出现问题

答案 1 :(得分:1)

我遇到了同样的问题,但是通过执行以下三个步骤,我得以解决:

  1. 找到您的<yourCertificate>.crt文件。
  2. 在文件夹/etc/ssl/certs/中创建一个指向您的<yourCertificate>.crt文件的符号链接。
  3. 使用--capath选项代替--cafile选项。

因此您的命令应如下所示:

$ mosquitto_pub --capath /etc/ssl/certs/ -h .iot.us-east-1.amazonaws.com -p 8883 -q 1 -t foo/bar -i anyclientID --tls-version tlsv1.2 -m "Hello" -d

来源:this在约书亚·汤加(Joshua Tonga)指出的问题中的具体评论。

答案 2 :(得分:0)

您将在旧版本的mosquitto-clients工具上收到此错误。

安装1.4.13或更高版本,您与AWS IoT的连接应该正常工作(提供正确的证书)。

答案 3 :(得分:0)

这不是一个非常有用的错误消息。我发现我的文件名拼写错误,在本例中为--key选项。确保按照说明下载aws root.cert文件。您也没有显示主机名的值,但是我认为这是因为您正在编辑该值。您需要为您的帐户使用正确的AWS IoT端点主机名。