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

AWS Fargate能否绕过SSL校验拉取自签名内部私有仓库镜像?

问题根因

报错x509: certificate signed by unknown authority的触发原因是ECS运行环境的容器运行时(Docker/containerd)默认不信任Nexus私有仓库使用的自签名SSL证书,主动拦截了不受信HTTPS端点的镜像拉取请求。

解决方案

分生产可用的证书信任方案、测试场景的临时绕过方案两类,按需选择:

生产环境推荐:配置自签名证书信任链(无安全风险)

该方案不需要关闭SSL校验,符合安全合规要求,支持所有ECS启动类型:

  • ECS EC2启动类型操作步骤:
    1. 从Nexus服务端导出自签名CA根证书文件,命名为ca.crt
    2. 将证书文件上传到集群内所有EC2宿主机的系统证书信任目录:
      • Amazon Linux 2/2023、RHEL系路径:/etc/pki/ca-trust/source/anchors/
      • Debian、Ubuntu系路径:/usr/local/share/ca-certificates/
    3. 执行系统证书更新命令:
      • RHEL/Amazon Linux系:update-ca-trust extract
      • Debian/Ubuntu系:update-ca-certificates
    4. 重启容器运行时让配置生效:systemctl restart docker containerd
    5. 批量部署场景可以把上述操作写入EC2启动模板的用户数据脚本,新扩容节点会自动完成证书配置,无需逐台手动操作。
  • Fargate启动类型操作步骤:
    Fargate没有宿主机操作权限,需要提前将Nexus自签名证书存储到AWS ACM或Secrets Manager,在任务定义的私有仓库认证配置段关联该证书,给Fargate任务执行角色授予对应资源的读取权限,拉取镜像时运行时会自动加载信任该证书,无需关闭校验。

测试环境临时方案:绕过SSL证书校验(存在安全风险)

仅建议临时测试时使用,生产环境禁用,该方案会失去HTTPS链路的证书校验能力,存在中间人攻击、镜像被篡改的风险:

  • ECS EC2启动类型操作步骤:
    1. 登录EC2宿主机,编辑Docker守护进程配置文件/etc/docker/daemon.json,添加私有非安全仓库配置,替换成实际的Nexus仓库地址(带端口):
    {
      "insecure-registries": ["nexus.internal.yourcompany.com:8083"]
    }
    
    1. 保存文件后执行命令重载配置、重启Docker:systemctl daemon-reload && systemctl restart docker
    2. 配置生效后,Docker会跳过对该仓库地址的SSL证书校验,可正常拉取镜像。批量部署同样可通过EC2启动模板用户数据完成自动配置。
  • Fargate启动类型说明:
    Fargate 1.4.0及以上官方版本没有提供跳过SSL校验的配置入口,不支持通过insecure-registries方式绕过证书检查,使用Fargate时必须走证书信任方案。

注意:如果配置后仍然拉取失败,检查ECS任务执行角色是否配置了私有仓库的拉取权限、ECS宿主机/任务的安全组是否放通了到Nexus仓库的网络端口。

内容的提问来源于stack exchange,提问作者Perkin Foo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:12:16