Windows11下Mosquitto_sub TLS配置报错:文件未找到
解决Windows下Mosquitto SSL-TLS订阅命令"File not found"报错
核心原因
Windows系统不支持类Unix的斜杠路径(/开头),你使用的/mosquitto/certs/ca.crt是Linux路径格式,系统无法识别并找到对应文件。
具体修复步骤
改用Windows绝对路径:将证书路径替换为Windows格式,比如证书实际存放在
C:\mosquitto\certs\ca.crt,命令修改为:mosquitto_sub -h 192.168.68.131 -p 8883 -t test --cafile C:\mosquitto\certs\ca.crt --tls-version tlsv1.2若路径包含空格,需给路径添加双引号,例如
"C:\Program Files\mosquitto\certs\ca.crt"使用相对路径简化:如果命令是在证书所在目录下执行的,直接使用文件名即可:
mosquitto_sub -h 192.168.68.131 -p 8883 -t test --cafile ca.crt --tls-version tlsv1.2检查文件读取权限:右键点击
ca.crt文件→属性→安全,确认当前Windows用户拥有该文件的读取权限,避免因权限不足导致系统无法访问文件。验证路径准确性:打开文件资源管理器,将证书路径复制到地址栏,确认能直接打开证书文件,排查是否存在路径拼写错误(如大小写、文件夹名称写错)。
额外排查点
确认Mosquitto Broker配置文件(mosquitto.conf)中的证书路径同样使用Windows格式,示例如下:
cafile C:\mosquitto\certs\ca.crt certfile C:\mosquitto\certs\server.crt keyfile C:\mosquitto\certs\server.key
修改配置后需重启Mosquitto服务才能生效。
内容的提问来源于stack exchange,提问作者fekef
相关产品推荐
相关产品推荐

