MQTT.fx 无法连接到 AWS IoT (MqttException)



我正在努力学习本教程https://circuitdigest.com/tutorial/getting-started-with-amazon-aws-for-iot-projects

我一次又一次地完成了所有步骤,但当点击"时,我无法消除MqttException错误;连接";MQTT.fx.中的按钮

我从AWS IoT下载证书,并将其保存在C:\temp文件夹中。我还检查了MQTT.fx中的日志选项卡,您可以在下面看到它。你知道如何解决它吗

非常感谢!

2020-10-09 10:40:28043错误---MqttFX客户端模型:请验证您的设置(例如,Broker地址、Broker端口和客户端ID)和用户凭据!org.eclipse.paho.client.mqttv3.MqttException:org.eclipse.paho.client.mqtv3.internal.ExceptionHelper.createMqttException(ExceptionHelper.java:38)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]org.eclipse.paho.client.mqtv3.internal.ClientComms$ConnectBG.run(ClientComms.java:715)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]java.util.concurrent.Executors$RunnableAdapter.call(未知源)~[?:1.8.0_162],位于java.util.concurrent.FFutureTask.run(未知源)~[?:1.8.0_162]java.util.concurrent.ScheduledThreadPoolExecutior$ScheduledFutureTask.access$201(未知来源)~[?:1.8.0_162]java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(未知来源)~[?:1.8.0_162]java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)[?:1.8.0_162]java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)在java.lang.Thread.run(未知源)[?:1.8.0_162]由以下原因引起:javax.net.ssl.ssl握手异常:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在中查找到请求目标的有效证书路径sun.security.ssl.Alerts.getSSLException(未知源)~[?:1.8.0_162]位于sun.security.ssl.SSLSocketImpl.fatal(未知源)~[?:1.8.0_162]在sun.security.ssl.Handshaker.totalSE(未知来源)~[?:1.8.0_162]在sun.security.ssl.Handshaker.totalSE(未知来源)~[?:1.8.0_162]sun.security.ssl.ClientHandshaker.serverCertificate(未知来源)~[?:1.8.0_162]sun.security.ssl.ClientHandshaker.processMessage(未知源)~[?:1.8.0_162]在sun.security.ssl.Handshaker.processLoop(未知来源)~[?:1.8.0_162]sun.security.ssl.Handshaker.process_record(未知来源)~[?:1.8.0_162]在sun.security.ssl.SSLSocketImpl.readRecord(未知来源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.startHandshake(未知源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.startHandshake(未知源)~[?:1.8.0_162]org.eclipse.paho.client.mqtv3.internal.SSLNetworkModule.start(SSLNetworkModules.java:108)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]org.eclipse.paho.client.mqtv3.internal.ClientComms$ConnectBG.run(ClientComms.java:701)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]。。。7更多原因:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法在中查找到请求目标的有效证书路径sun.security.validator.PIXValidator.doBuild(未知源)~[?:1.8.0_162]sun.security.validator.PIXValidator.engineValidate(未知源)~[?:1.8.0_162]在sun.security.validator.validate(未知来源)~[?:1.8.0_162]sun.security.ssl.X509TrustManagerImpl.validate(未知源)~[?:1.8.0_162]sun.security.ssl.X509TrustManagerImpl.checkTrusted(未知源)~[?:1.8.0_162]sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(未知来源)~[?:1.8.0_162]sun.security.ssl.ClientHandshaker.serverCertificate(未知来源)~[?:1.8.0_162]sun.security.ssl.ClientHandshaker.processMessage(未知源)~[?:1.8.0_162]在sun.security.ssl.Handshaker.processLoop(未知来源)~[?:1.8.0_162]sun.security.ssl.Handshaker.process_record(未知来源)~[?:1.8.0_162]在sun.security.ssl.SSLSocketImpl.readRecord(未知来源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.startHandshake(未知源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.startHandshake(未知源)~[?:1.8.0_162]org.eclipse.paho.client.mqtv3.internal.SSLNetworkModule.start(SSLNetworkModules.java:108)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]org.eclipse.paho.client.mqtv3.internal.ClientComms$ConnectBG.run(ClientComms.java:701)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]。。。7更多原因:sun.security.provider.certpath.SunCertPathBuilderException:无法在中查找到请求目标的有效证书路径sun.security.provider.certpath.SunCertPathBuilder.build(未知来源)~[?:1.8.0_162]sun.security.provider.certpath.SunCertPathBuilder.engineBuild(未知来源)~[?:1.8.0_162]java.security.cert.CertPathBuilder.build(未知源)~[?:1.8.0_162]sun.security.validator.PIXValidator.doBuild(未知源)~[?:1.8.0_162]sun.security.validator.PIXValidator.engineValidate(未知源)~[?:1.8.0_162]在sun.security.validator.validate(未知来源)~[?:1.8.0_162]sun.security.ssl.X509TrustManagerImpl.validate(未知源)~[?:1.8.0_162]sun.security.ssl.X509TrustManagerImpl.checkTrusted(未知源)~[?:1.8.0_162]sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(未知来源)~[?:1.8.0_162]sun.security.ssl.ClientHandshaker.serverCertificate(未知来源)~[?:1.8.0_162]sun.security.ssl.ClientHandshaker.processMessage(未知源)~[?:1.8.0_162]在sun.security.ssl.Handshaker.processLoop(未知来源)~[?:1.8.0_162]sun.security.ssl.Handshaker.process_record(未知来源)~[?:1.8.0_162]在sun.security.ssl.SSLSocketImpl.readRecord(未知来源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.performInitialHandshake(未知源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.startHandshake(未知源)~[?:1.8.0_162]sun.security.ssl.SSLSocketImpl.startHandshake(未知源)~[?:1.8.0_162]org.eclipse.paho.client.mqtv3.internal.SSLNetworkModule.start(SSLNetworkModules.java:108)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]org.eclipse.paho.client.mqtv3.internal.ClientComms$ConnectBG.run(ClientComms.java:701)~[org.eclipse.paho.client.mqtv3-1.2.0.jar:?]。。。7更多2020-10-0910:40:28045信息---脚本控制器:清除控制台。2020-10-09 10:40:28046错误---BrokerConnectService:Mqtt异常

我解决了我的问题。这是关于下载错误的证书。你可以在这里找到详细的解决方案。

在AWS IoT中创建一个东西后,下载所有3个证书。

如果您想获得MQTT.fx所需的CA证书,您需要转到此处(创建后,您将在AWS IoT的下载证书部分看到此链接),然后单击RSA 2048位密钥:Amazon Root CA 1链接。将打开新选项卡。

将此证书复制并粘贴到您的记事本上。将其命名为Amazon_Root_CA_1.pem,并在保存时选择"所有文件类型"。

将所有证书放在一个文件中。我把它们放在C:\temp文件夹下。

最后,我的配置是这样的:MQTT.fx配置

现在MQTT.fx有望工作:)

最新更新