实际上,我想使用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.
答案 0 :(得分:1)
require_certificate true
标志意味着经纪人将拒绝不提供自己的证书作为身份证明的客户。
删除此选项,您的客户端应该连接。如果您想进行相互身份验证,那么您还必须生成客户端证书并配置客户端以将其与连接一起发送