我正在关注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?
答案 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)
我遇到了同样的问题,但是通过执行以下三个步骤,我得以解决:
<yourCertificate>.crt
文件。 /etc/ssl/certs/
中创建一个指向您的<yourCertificate>.crt
文件的符号链接。--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端点主机名。