在python 3.7中使用paho mqtt客户端时出现问题

可见

我正在运行以下代码以连接到mqtt服务器。

import paho.mqtt.client as mqtt
import ssl
import uuid

client = mqtt.Client(str(uuid.uuid1()))
client.tls_set(
    "ca.crt",
    "client.crt",
    "client.key",
    cert_reqs=ssl.CERT_REQUIRED,
    tls_version=ssl.PROTOCOL_TLSv1
)
client.connect(
    "127.0.0.1",
    8883,
)
client.loop_forever()

这段代码可以在python2.7版本上正常工作。但是当我使用python3.7版本运行它时,出现以下错误。

Traceback (most recent call last):
  File "test.py", line 29, in <module>
    8883,
  File "virtualenvs/mqtt-xG2h6zri/lib/python3.7/site-packages/paho/mqtt/client.py", line 839, in connect
    return self.reconnect()
  File "mqtt-xG2h6zri/lib/python3.7/site-packages/paho/mqtt/client.py", line 994, in reconnect
    sock.do_handshake()
  File ".pyenv/versions/3.7.0/lib/python3.7/ssl.py", line 1108, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: IP address mismatch, certificate is not valid for '127.0.0.1'. (_ssl.c:1045)

请帮助我弄清楚如何使它在python 3.7中工作。

可见

找到了答案。

实际上,根据链接,与证书的CN字段匹配的服务器IP地址已被弃用超过15年。但是低于3.7的python版本仍然允许这样做,即使它已被弃用。因此,我必须创建一个证书,并在SAN字段中添加服务器的IP地址。

答案中说明了创建带有SAN字段的证书但是答案中的解决方案使用域名。如果要使用IP地址创建证书,请使用此命令而不是该答案中的命令来创建证书。

openssl x509 -req -in server.csr \
        -extfile <(printf "subjectAltName=IP:127.0.0.1") \
        -CA ca.crt \
        -CAkey ca.key \
        -CAcreateserial -out server.crt \
        -days 365

使用这些证书后,错误就解决了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Catalina,Python / Python3,pip / pip3,PATH,zshrc等中使用zsh时出现问题

在python中使用查询时出现问题

Paho Python MQTT客户端成功连接,但未调用on_connect回调

如何在Django中使用Paho mqtt客户端?

PAHO MQTT Python客户端-缺少确认,保证为订户传递

如何在Python多处理中使用boto3客户端?

Paho MQTT Python客户端:没有引发异常,只是停止

通过套接字从C ++服务器向Python客户端发送数据时出现问题

Python 3-使用subprocess.call模块的stdout参数写入文件时出现问题

当paho python mqtt客户端从订阅的主题获取消息时,它将始终在接收到的消息中添加“ b”

Python计算器-使用3号出现问题

使用WebDAV客户端python访问加密的nextcloud SSL时遇到问题

在Python中使用RSVG和Cairo时出现问题

paho-mqtt发布-订阅无法在Python中的单独文件中使用

在python中使用csv创建字典时出现问题

在Node.js客户端/服务器中通过TCP发送查询结果时出现问题

使用Python在UDP客户端服务器中打印消息时的编码问题

使用python客户端将JSON数据写入Cassandra,主键选择出现问题

使用Echo框架在Go Lang中安装SSL证书时出现问题(客户端向HTTPS服务器发送了HTTP请求。)

在python 3中读取带有非ASCII字符的字符串时出现问题

使用youtube API V3进行分页时出现异常行为[Python的Google API客户端库]

使用apt-mirror在16.04中使用本地存储库出现问题。如何从客户端更新?

在WSO2 EMM 2.0中注册Windows Phone 8.1客户端时出现问题

下载python 3时出现问题

Python paho mqtt 客户端不会同时发布和订阅

python Paho客户端MQTT:写入多个文件

使用 python3 tkinter 运行我的代码时出现问题

Eclipse Paho MQTT 客户端在 Java 中使用 TLS

我在python3中使用break指令时出现问题