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

Docker构建遇Zscaler SSL证书错误:证书格式问题及禁用验证方案咨询

Zscaler导致Docker构建中Poetry TLS失败的解决方案

问题背景

使用Python Dockerfile构建镜像时,执行RUN poetry install --no-root抛出SSL certificate problem: unable to get local issuer certificate错误,原因是系统安装的Zscaler拦截TLS连接。尝试导入Zscaler证书后,update-ca-certificates提示rehash: warning: skipping ZscalerRootCertificate.pem,it does not contain exactly one certificate or CRL,证书未被识别。


解决方案一:修正Zscaler证书格式并导入

1. 提取正确的PEM格式证书

如果导出的证书是PKCS#12(.pfx/.p12)格式,先转换为仅包含证书的PEM文件:

openssl pkcs12 -in ZscalerRootCertificate.pfx -nokeys -out ZscalerRootCertificate.pem

如果是从浏览器导出,确保选择**Base64编码的X.509 (.CER)**格式,且仅导出根证书,不要包含中间证书或私钥。

2. 修改Dockerfile导入证书

在Dockerfile中添加证书导入步骤(建议放在安装Poetry之后、执行poetry install之前):

# 安装证书管理工具
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/*

# 复制证书到系统CA目录(注意后缀改为.crt)
COPY ZscalerRootCertificate.pem /usr/local/share/ca-certificates/ZscalerRootCertificate.crt

# 更新系统信任的CA证书
RUN update-ca-certificates

解决方案二:本地禁用SSL证书验证(仅开发环境使用)

如果仅用于本地测试,可直接跳过SSL验证:

方法1:通过环境变量全局禁用

在Dockerfile的ENV区块添加以下变量:

ENV PYTHONHTTPSVERIFY=0 \
    CURL_CA_BUNDLE="" \
    POETRY_HTTP_BASIC_SSL_VERIFY=false

方法2:临时修改Poetry配置

执行poetry install前单独关闭SSL验证:

RUN poetry config http-basic.ssl.verify false && poetry install --no-root

修改后的完整Dockerfile示例(以证书导入方案为例)

FROM python:3.11.5-slim as base

MAINTAINER Customer Platform <>

ARG GIT_SHA_ARG=unknown

RUN apt-get update && \
    apt-get install -y \
    curl \
    && rm -rf /var/lib/apt/lists/* \
    && curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin

ENV GIT_SHA=${GIT_SHA_ARG} \
    INSTALL_PATH="/app" \
    POETRY_HOME="/opt/poetry" \
    POETRY_NO_INTERACTION=1 \
    POETRY_VERSION=1.6.1 \
    VIRTUAL_ENV="/venv" \
    SHARED_PATH="/shared"

EXPOSE 8000

RUN mkdir -p $INSTALL_PATH
WORKDIR $INSTALL_PATH
RUN mkdir -p $SHARED_PATH

# Create and activate the venv
RUN mkdir -p ${VIRTUAL_ENV} && \
    python -m venv ${VIRTUAL_ENV} && \
    ${VIRTUAL_ENV}/bin/pip install --upgrade pip
ENV PATH=${VIRTUAL_ENV}/bin:${POETRY_HOME}/bin:${PATH} \
    PYTHONPATH=${INSTALL_PATH}

# Install tini
ENV TINI_VERSION v0.19.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini

# Install poetry (installer uses POETRY_* vars from above)
RUN curl -sSL https://install.python-poetry.org | python

# 新增:导入Zscaler证书步骤
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/*
COPY ZscalerRootCertificate.pem /usr/local/share/ca-certificates/ZscalerRootCertificate.crt
RUN update-ca-certificates

# 执行poetry安装
RUN poetry install --no-root

ENTRYPOINT [ "/tini", "--" ]
CMD [ "./bin/bash" ]

内容的提问来源于stack exchange,提问作者Rashmi Balkur

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:21:10