尝试通过Secure TLS连接MQTT客户端时发生TLS错误

时间:2017-02-07 03:22:37

标签: mqtt publish-subscribe

实际上,我想使用Arduino IDE使用ESP8266在TLS上实现MQTT SECURE Client,并希望检查是否首先使用CMD线路。但似乎它不适用于CMD线本身。

请让我知道如果它是一个BUG或任何配置缺失。我需要尽可能地修复它。

我关注了https://mosquitto.org/man/mosquitto-tls-7.html网页 生成证书颁发机构证书和密钥。

openssl req -new -x509 -days 1095 -extensions v3_ca -keyout ca.key -out ca.crt

生成客户端密钥。

openssl genrsa -des3 -out client.key 2048

生成要发送给CA的证书签名请求。

openssl req -out client.csr -key client.key -new

将CSR发送到CA,或使用您的CA密钥签名:

openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 1095

// local.conf文件

bind_address 127.0.0.1

port 8883

tls_version tlsv1

cafile C:\OpenSSL-Win64\bin\ca.crt

certfile C:\OpenSSL-Win64\bin\client.crt

keyfile C:\OpenSSL-Win64\bin\client.key

require_certificate true

//一个CMD窗口

mosquitto_sub -h 127.0.0.1 -p 8883 -q 1 -t sensor/temp --cafile C:/OpenSSL-Win64/bin/ca.crt

//第二个CMD窗口

mosquitto -c local.conf -v

我收到以下错误:

错误:发生了TLS错误&

C:\Program Files (x86)\mosquitto>mosquitto -c mosquitto_m2mqtt.conf -v
1486436916: mosquitto version 1.4.10 (build date 24/08/2016 21:03:24.73) starting

1486436916: Config loaded from mosquitto_m2mqtt.conf.

1486436916: Opening ipv6 listen socket on port 8883.

1486436916: Opening ipv4 listen socket on port 8883.

Enter PEM pass phrase:

1486436943: New connection from 127.0.0.1 on port 8883.

1486436943: OpenSSL Error: error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version

1486436943: OpenSSL Error: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure

1486436943: Socket error on client <unknown>, disconnecting.

1 个答案:

答案 0 :(得分:1)

require_certificate true标志意味着经纪人将拒绝不提供自己的证书作为身份证明的客户。

删除此选项,您的客户端应该连接。如果您想进行相互身份验证,那么您还必须生成客户端证书并配置客户端以将其与连接一起发送