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

如何解决Jupyter Notebook Docker镜像安装自签名证书不生效问题

Jupyter Notebook Docker镜像安装自签名证书解决方案

问题根因

你遇到的证书不识别问题,是官方jupyter/datascience-notebook镜像的特殊设计导致的:该镜像预装了Miniconda运行环境,包括Python、curl在内的绝大多数用户态工具会优先读取conda环境内置的CA证书 bundle,而非系统级的/etc/ssl/certs路径下的证书。你之前的操作仅更新了系统证书存储,没有同步到conda的证书体系,因此访问内部HTTPS服务时会校验失败。

正确安装流程

完整的证书安装需要同时覆盖系统存储和conda环境存储,同时配置全局环境变量避免个别HTTP库走默认证书路径,以下是修改后的Dockerfile:

FROM jupyter/datascience-notebook:notebook-6.4.2
USER root
# 配置代理(保留你原有的代理配置)
RUN echo 'Acquire::http::proxy "http://proxy.internal.server";' >> /etc/apt/apt.conf.d/99proxy
ENV http_proxy http://proxy.internal.server
ENV https_proxy http://proxy.internal.server
ENV NO_PROXY internal.server,localhost,127.0.0.1
# 第一步:安装证书到系统存储
COPY certificates/* /usr/local/share/ca-certificates/
RUN update-ca-certificates
# 第二步:同步系统证书到conda环境的CA证书 bundle
RUN cat /etc/ssl/certs/ca-certificates.crt >> ${CONDA_DIR}/ssl/cacert.pem
# 第三步:配置全局环境变量,指定所有HTTP工具优先使用更新后的证书
ENV REQUESTS_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
ENV SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt
# 切回默认的jupyter用户,避免运行时权限问题
USER ${NB_UID}

验证方法

构建镜像后启动容器,执行以下两个操作验证配置生效:

  • 系统工具验证:执行curl -O https://internal.server/file,无需添加-k参数即可正常拉取文件
  • Python环境验证:在Jupyter Notebook中执行以下代码无SSL报错即可
    import requests
    resp = requests.get("https://internal.server/file")
    print(resp.status_code)
    

内容的提问来源于stack exchange,提问作者Hong Ooi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 20:45:03