如何让Mosquitto忽略SNI?SIM800C TLS连接问题求助
让Mosquitto忽略SNI的解决方案
1. 关闭SNI强制校验
打开Mosquitto的配置文件(通常路径为/etc/mosquitto/mosquitto.conf),检查是否存在require_sni配置项:
- 如果配置了
require_sni true,将其修改为require_sni false,或者直接删除该行(默认值即为false) - 重启Mosquitto服务使配置生效:
systemctl restart mosquitto(Linux环境)
2. 配置默认SSL证书(多域名SNI场景)
如果你的Mosquitto通过SNI配置了多个域名证书,需要给监听端口指定默认证书,让未传输SNI的客户端能使用默认证书完成握手:
在对应的listener配置块中添加默认证书路径:
listener 8883 # 无SNI的客户端将使用此默认证书 certfile /etc/mosquitto/certs/default.crt keyfile /etc/mosquitto/certs/default.key # SNI域名映射(若有配置多证书) sni_map /etc/mosquitto/sni_map.conf
sni_map.conf的示例内容:
mqtt.example.com /etc/mosquitto/certs/example.crt /etc/mosquitto/certs/example.key mqtt.test.com /etc/mosquitto/certs/test.crt /etc/mosquitto/certs/test.key
3. 验证配置效果
重启服务后,使用SIM800C模块重新尝试连接,确认SSL握手和MQTT连接是否正常建立。
内容的提问来源于stack exchange,提问作者Rotanic
相关产品推荐
相关产品推荐

