我正在尝试使用TLS通过mqtt进行通信。我的系统中安装了ubuntu。为了使用TLS,我使用以下链接创建了证书:
我能够创建证书。但是,当我给mosquitto_m2mqtt.conf文件中的bind_address属性赋值并使用命令mosquitto -c mosquitto_m2mqtt.conf
启动mosquitto时,会出现问题所给的错误;即Error: cannot assign requested address
。请让我知道如何解决此问题。
以下是配置文件的内容:
port 8883
bind_address iothdp02
cafile /etc/mosquitto/m2mqtt_ca.crt
certfile /etc/mosquitto/m2mqtt_srv.crt
keyfile /etc/mosquitto/m2mqtt_srv.key
tls_version tlsv1
运行命令mosquitto -c mosquitto_m2mqtt.conf -v
时,出现如下错误:
1551089294: mosquitto version 1.4.8 (build date 2016-09-21 11:21:45+0530) starting
1551089294: Config loaded from mosquitto_m2mqtt.conf.
1551089294: Opening ipv4 listen socket on port 8883.
1551089294: Error: Cannot assign requested address
编辑1:
我从配置文件中删除了bind_address
,并使用“ mosquitto -c mosquitto_m2mqtt.conf -v”从新的配置文件开始了mosquitto。 Mosquitto启动,但是当我运行mosquitto_sub命令时,出现如下错误:
mosquitto -c mosquitto_m2mqtt.conf -v
1551172930: mosquitto version 1.4.8 (build date 2016-09-21 11:21:45+0530) starting
1551172930: Config loaded from mosquitto_m2mqtt.conf.
1551172930: Opening ipv4 listen socket on port 8883.
1551172930: Opening ipv6 listen socket on port 8883.
Enter PEM pass phrase:
1551172960: New connection from 127.0.0.1 on port 8883.
1551172960: OpenSSL Error: error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown
1551172960: OpenSSL Error: error:140940E5:SSL routines:ssl3_read_bytes:ssl handshake failure
1551172960: Socket error on client <unknown>, disconnecting.
在我订阅的窗口中,出现如下错误:
mosquitto_sub -p 8883 -q 1 -t sensor/temp --cafile /etc/mosquitto/m2mqtt_srv.crt --tls-version tlsv1 -d
Unable to connect (A TLS error occurred.).
答案 0 :(得分:0)
如果将主机名传递给bind_address
参数,则它必须解析为有效的IP地址,这不一定与hostname
的输出相同。
这与TLS /证书设置无关,纯粹是mosquitto如何识别要绑定到的地址。
关于如何解决此问题,您有几种选择:
bind_address
行,这将导致mosquitto监听所有可用地址bind_address
字段中使用的所有内容都解析为绑定到代理正在运行的计算机上的接口的IP地址。这可能意味着使用完全限定的域名(您可能也应该在经纪人的证书CN中使用该域名)