IoT设备经IoT Edge网关连IoT Hub遇SSL证书验证失败,求禁用方法
解决IoT Edge网关自签名证书验证失败问题(禁用证书验证)
针对你遇到的ssl.SSLCertVerificationError证书验证失败错误,以下是在Azure IoT Python SDK中禁用证书验证的具体方法,仅适用于测试环境:
修改代码步骤
- 导入
ssl模块 - 创建自定义SSL上下文,关闭证书验证逻辑
- 初始化
IoTHubDeviceClient时,传入自定义的MQTT传输配置
修改后的核心代码片段:
import ssl from azure.iot.device.aio import IoTHubDeviceClient from azure.iot.device import Message async def main(): # 保留原有的连接字符串等配置代码 # 创建禁用证书验证的SSL上下文 ssl_context = ssl.create_default_context() ssl_context.check_hostname = False ssl_context.verify_mode = ssl.CERT_NONE # 初始化DeviceClient时传入MQTT传输配置 device_client = IoTHubDeviceClient.create_from_connection_string( connection_string, mqtt_transport_options={"ssl_context": ssl_context} ) # 保留原有的连接、发送消息代码
重要提醒
禁用证书验证会关闭TLS安全校验,存在中间人攻击风险,绝对不能用于生产环境。生产环境请确保设备正确安装IoT Edge网关的根CA证书,并且证书链配置完整。
内容的提问来源于stack exchange,提问作者nupagazi
相关产品推荐
相关产品推荐

