- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在构建一个 mqtt 服务器。我在服务器上使用带有 TLS 的 mosquitto 作为代理。
我遇到了这个问题:我通过 generate-CA.sh
创建了 ca.crt
、服务器证书、服务器 key 、客户端证书、客户端 key
我可以通过 MQTT.fx 连接代理并发布和订阅消息,但是当我尝试将代理与 mosquitto_sub 连接时,客户端 PC 上出现了错误:发生 TLS 错误
(ubuntu),同时服务器端打印
New connection from xx.xx.xx.xx on port 8883.
Openssl Error: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown
Openssl Error: error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure
我使用的命令是:
mosquitto_sub -p 8883 -i test -t mqtt -h 150.xx.xx.xx --cafile ca.crt --cert xx.crt --key xx.key
其中, 150.xx.xx.xx
是我经纪人的 IP。
当我在上面的命令中使用选项 --insecure
时,问题就消失了。所以我认为是服务器主机名导致了这个问题。在 mosquitto_sub 命令中,选项 -h
指定主机名,但我需要使用此参数指向我的代理的 IP 地址,那么我如何指定我的服务器的主机名??
最佳答案
老问题,但也许这可能对某人有帮助:
如果 --insecure
选项使其工作,则您遇到了证书问题。您在签署证书时设置了什么主机名? openssl s_client -showcerts -connect 150.xx.xx.xx:8883
说了什么?
相关:虽然应该可以使用公共(public) IP 地址为您的服务器使用 SSL 证书(参见 Is it possible to have SSL certificate for IP address, not domain name?),但我建议不要这样做并且仅使用 DNS,即使这意味着 server.localdomain
和/或在必要时编辑您的 /etc/hosts
文件。
关于linux - mosquitto_sub 错误 :A TLS error occurred but is ok whit --insecure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44151862/
我在我的 Debian 7.8 上使用 Mosquitto(1.4.9) MQTT-Broker(版本 3.1)。 我尝试执行这个命令: mosquitto_sub -t "#" -v 响应: Err
我是 MQTT 的新手,遇到了一个令人沮丧的问题。 我一直在使用 MQTT.fx 订阅主题;我已经设置了: 经纪地址 端口 客户 ID 启用 SSL/TLS 话题 这很有效,但是我想使用 mosqui
我正在构建一个 mqtt 服务器。我在服务器上使用带有 TLS 的 mosquitto 作为代理。 我遇到了这个问题:我通过 generate-CA.sh 创建了 ca.crt、服务器证书、服务器 k
我正在运行安装了 mosquitto 服务器和客户端的 17.04 版 ubuntu。我生成了一组证书: openssl genrsa -out ca.key 2048 openssl req -x5
我对在 xubuntu 20.02 上运行的 mosquitto_sub 1.6.14 有一个奇怪的问题。 只要我不使用证书文件,一切都可以正常工作。 使用证书文件时,我收到“错误:设置 TLS 选项
我是一名优秀的程序员,十分优秀!