ssl_cert_reqs 没有这个参数
时间: 2023-08-02 09:07:33 浏览: 146
如果你使用的是较旧版本的 `websocket` 库,可能没有 `ssl_cert_reqs` 参数。请尝试使用以下方法来禁用 SSL 证书验证:
```python
import websocket
import ssl
context = ssl.SSLContext(ssl.PROTOCOL_TLS)
context.verify_mode = ssl.CERT_NONE
ws = websocket.WebSocketApp("wss://example.com",
on_open=on_open,
on_message=on_message,
on_error=on_error,
on_close=on_close,
sslopt={"ssl_context": context})
```
这里我们使用了 `ssl.SSLContext` 对象来创建 SSL 上下文,并将其 `verify_mode` 属性设置为 `ssl.CERT_NONE`,即禁用了 SSL 证书验证。然后我们将 `SSLContext` 对象传递给 `WebSocketApp` 的 `sslopt` 参数中,以便创建 WebSocket 连接时使用。
相关问题
micropython,mqtt通过TLS连接MQTT服务器时,我按照这个执行参数配置和连接 client = MQTTClient(client_id=client_id, server=mserver, port=8883,user=user,password=pwd,ssl=True) client.ssl_params={ "ca_certs": cacert, "cert_reqs": ssl.CERT_REQUIRED } client.connect(),依然报错TypeError: extra keyword arguments given 请问为什么?
这个错误是因为在创建MQTTClient实例时,使用了ssl参数,同时在connect方法中再次使用ssl_params参数导致的。这两个参数的作用是相同的,所以只需要使用其中一个即可。可以在创建MQTTClient实例时使用ssl_params参数,并在连接时不使用ssl参数。例如:
client = MQTTClient(client_id=client_id, server=mserver, port=8883,user=user,password=pwd,ssl_params={ "ca_certs": cacert, "cert_reqs": ssl.CERT_REQUIRED })
client.connect()
micropython 的mqtt ssl_params包含什么?
MicroPython的MQTT库中的ssl_params参数包含以下SSL/TLS连接参数:
1. ca_certs: 用于验证服务器证书的CA证书文件路径或内容。
2. certfile: 用于身份验证的客户端证书文件路径或内容。
3. keyfile: 用于身份验证的客户端私钥文件路径或内容。
4. cert_reqs: 用于控制是否需要服务器证书验证的选项。
5. tls_version: 用于指定TLS版本的选项。
6. ciphers: 用于指定加密套件的选项。
7. do_handshake_on_connect: 是否在连接时进行SSL握手。
8. suppress_ragged_eofs: 是否应忽略不完整的读取数据。
9. server_hostname: 用于在SNI扩展中发送的服务器主机名。
这些参数允许您配置一个安全的MQTT连接,并确保通信的机密性和完整性。
阅读全文