You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows容器中Python调用Azure Blob服务遇SSL证书验证失败求助

Windows容器内调用Azure Blob服务遇SSL证书验证失败的解决办法

针对你遇到的ServiceRequestError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate错误,结合Windows容器(基础镜像python3.7.2windows:ltsc2019-202302)的环境特性,提供以下解决方案:

1. 手动指定CA证书路径

Windows容器默认的证书链可能缺失Azure服务需要的根证书,可通过certifi包的证书文件强制指定验证路径:

import certifi
from azure.storage.blob import BlobServiceClient

# 使用certifi提供的CA证书集合
blob_service_client = BlobServiceClient.from_connection_string(
    "你的Azure存储账户连接字符串",
    connection_verify=certifi.where()
)

如果容器内有系统可信证书文件,也可直接指向该文件路径(例如C:\\Windows\\System32\\certificates\\root\\ca.pem)。

2. 导入缺失的根证书到容器

ltsc2019基础镜像的根证书库可能不全,可在Dockerfile中添加步骤导入Azure服务依赖的根证书(如Baltimore CyberTrust Root):

# 从本地主机复制根证书到容器(假设主机已安装对应证书)
COPY ./BaltimoreCyberTrustRoot.cer C:\\temp\\BaltimoreCyberTrustRoot.cer
# 导入到容器的根证书存储
RUN certutil -addstore -f "Root" "C:\\temp\\BaltimoreCyberTrustRoot.cer"

也可以直接从官方渠道下载所需根证书后导入。

3. 同步容器内的根证书(需网络连通Windows Update)

运行容器内的命令,从Windows Update同步最新根证书:

certutil -syncWithWU

执行前确保容器能访问Windows Update的相关端口和地址。

4. 临时关闭证书验证(仅测试环境使用)

如果是测试场景,可临时跳过证书验证,但生产环境绝对禁止:

from azure.storage.blob import BlobServiceClient

blob_service_client = BlobServiceClient.from_connection_string(
    "你的Azure存储账户连接字符串",
    connection_verify=False
)

内容的提问来源于stack exchange,提问作者Christian Paul Parreno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 00:10:16