我尝试将 SSL 与 MQTT 结合使用并收到以下错误,
1379677998: Client connection from 127.0.0.1 failed: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number.
1379678058: OpenSSL Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
1379678058: Socket read error on client (null), disconnecting.
Run Code Online (Sandbox Code Playgroud)
我的conf文件有如下设置,
port 8883
cafile /home/administrator/Downloads/mosquitto-1.2.1_dilip/test/ssl/test-root-ca.crt (also tried all-ca.crt here)
certfile /home/administrator/Downloads/mosquitto-1.2.1_dilip/test/ssl/server.crt
keyfile /home/administrator/Downloads/mosquitto-1.2.1_dilip/test/ssl/server.key
tls_version tlsv1
require_certificate true (tried commenting this too)
Run Code Online (Sandbox Code Playgroud)
我从测试文件夹运行 08-ssl-connect-cert-auth.test 。下面包含代码片段
mosquitto_tls_opts_set(mosq, 1, "tlsv1", NULL);
mosquitto_tls_set(mosq, "../ssl/test-root-ca.crt", "../ssl/certs", "../ssl/client.crt", "../ssl/client.key", NULL);
mosquitto_connect_callback_set(mosq, on_connect);
mosquitto_disconnect_callback_set(mosq, on_disconnect);
rc = mosquitto_connect(mosq, "localhost", 8883, 60);
Run Code Online (Sandbox Code Playgroud)
环境信息:
Python 2.7.3
OpenSSL 1.0.1 14 Mar 2012
Description: Ubuntu 12.04.2 LTS
Release: 12.0
mosquitto-1.2.1/mosquitto-1.2
Run Code Online (Sandbox Code Playgroud)
请让我知道这里可能出了什么问题?我还尝试使用 gen.sh 生成证书。
提前致谢。
-迪利普
一般而言 - 您应该生成自己的证书,不要使用 mosquitto 提供的证书进行测试,或者使用 gen.sh 脚本而不根据您自己的详细信息进行修改。
要使用提供的证书,您应该all-ca.crt在经纪人中使用。它包含示例根 CA 和中间 CA 证书。客户端仅需要根 CA 来进行验证。
您在代理配置中使用证书的完整路径,但在客户端中使用相对路径。你确定他们都是正确的吗?
您是否尝试过未经修改地运行测试make test?例如,这会告诉您 openssl 安装是否存在问题。
| 归档时间: |
|
| 查看次数: |
10459 次 |
| 最近记录: |