如何解决 docker registry x509 证书不信任问题?

docker出现x509: certificate has expired or is not yet valid错误的一种解决方案 在拉取docker镜像nvidia/cuda:10.2-devel-ubuntu-16.04时,出现中止,错误信息如下: Get https://registry-1.docker.io/v2/: x509: certificate has expired or is not yet valid 查阅资料,主要是由两种情况导致的,一是时间不同步,二是证书过期。 (1)对于第一种情况,同步一下时间即可,具体操作为: apt-get install npt ntpdate cn.pool.ntp.org 阅读详情

最近想尝试一下极狐GitLab(可以理解为 GitLab 在中国的发行版)内置的容器镜像仓库,这样就不用自己安装 Harbor 之类的了。于是找了个服务器安装了一个极狐GitLab 的私有化部署版本,安装过程可以参考过往的技术文章使用Omnibus 安装极狐GitLab。

极狐GitLab 私有化实例部署成功以后,接下来就需要启用内置的容器镜像仓库了。需要在 /etc/gitlab/gitlab.rb 文件中对于容器仓库的配置内容进行修改:

registry_nginx['enable'] = true
registry_nginx['listen_port'] = 5050

registry_external_url 'http://jihu-instance.url:5050'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "jihu-instance.url"
gitlab_rails['registry_port'] = "5005"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

为了使用上的安全,想给容器镜像仓库启用 HTTPS,所以需要配置 SSL 证书。在这个过程中,使用自签名的证书,以下三个命令即可生成对应的 csr、cert 和 key,将生成在证书都放在 /etc/gitlab/ssl 目录下面,注意 ssl 目录的权限应该为 755.

$ openssl genrsa -out ca.key 2048

$ openssl req -new -x509 -days 365 -key ca.key -subj "/C=CN/ST=LN/L=DL/O=JH/CN=jh-instance.url" -out ca.crt

$ openssl req -newkey rsa:2048 -nodes -keyout jh-instance.url.key -subj "/C=CN/ST=LN/L=DL/O=JH/CN=jhma.jihulab.net" -out jh-instance.url.csr

$ openssl x509 -req -extfile <(printf "subjectAltName=DNS:jh-instance.url,DNS:www.jh-instance.url") -days 365 -in jh-instance.url.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out jh-instance.url.crt

接着在 /etc/gitlab/gitlab.rb 配置文件中写入证书配置信息:

registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/jh-instance.url.crt"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/jh-instance.url.key"

配置完成以后需要执行 gitlab-ctl reconfigure 让配置生效。

接着将如下内容写入 .gitlab-ci.yml 文件进行测试:

component-job-build-image:
  image: 
    name: docker:20.10.7-dind
  stage: build
  script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE:1.0.0 .
    - docker push $CI_REGISTRY_IMAGE:1.0.0

触发 CI/CD 流水线,会遇到如下错误:

tls: failed to verify certificate: x509: certificate signed by unknown authority 这句话的意思也就是说自签名的这个 x509 证书,docker 不信任。为了解决这个问题,需要在 daemon.json 文件中写入如下内容:

{
    "insecure-registries" : [ "jh-instance.url:5050" ]
}

然后重启 docker

$ systemctl daemon-reload
$ systemctl restart docker

然后重新执行流水线,就可以看到 Job 会执行成功:

至此,使用自签名证书启用极狐GitLab 内置的容器镜像仓库所带来的 x509 证书不受信任的问题就解决了。

Harbor docker login x509 certificate signed by unknown authority 文章目录Harbor docker login x509 certificate signed by unknown authority前言生成的证书方法一方法二方法三参考文档 Harbor docker login x509 certificate signed by unknown authority 前言 在CentOS7上用Harbor搭建好私有Docker registry并配置好HTT... 阅读详情

相关推荐

TLS安全的docker registry —— 自签名证书 安装

自签名docker registry 安装 记录 安全的Docker registry, 包含Authentication, ACL, TLS 等, 不安全的, 包括, 只有签名的(TLS)的认证, 和 完全开放的。 以下是安装Docker registry 后, 利用openssl 生成一个自签名的证书, 用户信任 Registry 的站点。 1. 基本信息 系统 64位R

XuYongshi02的专栏 8799

verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead

使用自签名的ssl证书遇到如下问题: tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead

weixin_46660849的博客 9万+

【Docker】拉取镜像报错:x509: certificate has expired or is not yet valid

x509: certificate has expired or is not yet valid

liu_chen_yang的博客 4231

Docker报错:x509: certificate has expired or is not yet valid

一、问题描述 Docker pull镜像的时候 出现错误 x509: certificate has expired or is not yet valid 二、解决问题 x509: certificate has expired or is not yet valid X509:证书已过期或尚未有效 两种情况: 证书已经过期了 证书是没有问题的,但是系统时间不对 1、检查系统时间 [root@localhost ~]# date 系统时间不对 修改系统时间 更新时间同步即可:ntp

. 2万+

Rancher环境下访问Harbor时出现x509: 证书签名由未知机构引起的问题

以上就是解决Rancher环境下访问Harbor时出现x509: 证书签名由未知机构引起的问题的方法。通过将Harbor的证书导入Centos7系统并重新启动Docker服务,我们可以顺利地访问和操作Harbor中的镜像仓库。然而,有时在访问Harbor时可能会出现x509: 证书签名由未知机构引起的问题。您可以通过Rancher访问Harbor,而不再遇到x509: 证书签名由未知机构引起的问题。要解决这个问题,我们需要将Harbor的证书导入到Centos7系统的受信任证书存储中。

LogicGuruX的博客 2107

【云原生技术】K8s 在拉取镜像时报错tls: failed to verify certificate: x509: certificate signed by unknown authority

原因 Kubernetes 节点在拉取镜像时会对 Harbor 的 HTTPS 证书做严格校验; 日志里的核心报错是: ``` tls: failed to verify certificate: x509: certificate signed by unknown authority ``` 说明 Harbor 返回的服务器证书要么是自签发,要么缺少在系统信任链里的根/中级 CA,节点因此拒绝连接。 你需要让 **所有负责拉镜像的节点(containerd 或 Docker 守护进程)

weixin_46453070的博客 2871

私有Docker Registry搭建实战:从零配置HTTPS认证与镜像推送

在容器化与微服务架构普及的今天,镜像管理成为DevOps流程中的关键环节。Docker Registry作为镜像分发与存储的核心组件,承担着版本控制、安全合规与高效传输的职责。理解其工作原理,即客户端与仓库服务端通过标准API交互,是掌握私有仓库搭建的基础。面对公网拉取受限、内网隔离及供应链安全等场景,自建Registry能显著提升交付效率并保障资产安全。从生成自签名TLS证书、配置htpasswd认证,到对接Docker守护进程信任链,再到验证push/pull流程,一套完整的HTTPS私有仓库方案可广泛

weixin_30444111的博客 333

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记-----GCN在交通领域的应用(二) 一、论文翻译: 1、摘要: 及时准确地交通预测对于城市交通控制和指导具有至关重要的意义。由于交通流量的非线性和复杂性,传统的方法不能满足中长期预测任务的需求,并且往往会忽略时空数据的时间和空间依赖特性。在这篇论文中,为了处理在交通领域的时间序列预测问题...

cy_believ的博客 1916

解决: Error response from daemon: Get https://registry.docker.xxx.com/v1/_ping: x509: certificate

Docker version 17.04.0-ce, centos 7 从公司 docker 仓库 pull 镜像的时候报 x509: certificate signed by unknown authority. 查了一下, 网上说设置 docker insecure_registry便可...

chenglang0914的博客 7903

ScottPlot vs LiveCharts:WPF图表库性能对比与MVVM适配方案

本文深度对比了WPF图表库ScottPlot与LiveCharts在性能与MVVM架构适配上的表现。通过十万级数据点的基准测试,ScottPlot在渲染速度与内存占用上优势显著。文章重点探讨了两种库在MVVM模式下的集成方案,为开发者根据项目需求(如实时监控或快速原型)进行技术选型提供了实战指导。

lll78的博客 245

CANoe数据回放实战:如何用Replay Block精准复现实车故障(附ECU数据处理技巧)

本文深入探讨了利用CANoe的Replay Block功能进行数据回放,以精准复现实车偶发性故障的实战方法。文章重点解析了从原始OBD日志中移除目标ECU数据、转换报文方向等核心数据处理技巧,旨在帮助工程师重构真实的网络测试环境,从而高效定位并解决复杂的ECU问题。

nnn11的博客 495

docker registry私库自签证书,各种错误解决

docker私库 registry自签证书 没有域名的话,配置hosts即可 vim /etc/hosts 192.168.1.232 dockerhub.titaxxxx.com 开始敲入命令生成证书 openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/dockerhub.titaxxx.com.key -x509 -da...

海洋专栏 2259

论文理解【LLM-Clarification】—— 【QDrawer】Asking the Right Question at the Right Time: Human and Model Unce

本文基于 CoDraw 任务对 LLM 澄清提问的触发方式进行探索,发现模型内部不确定性与人类澄清决策相关性弱,使用不确定性阈值触发澄清提问相比模仿人类提问时机,性能和计算效率都更好

佚失的诗篇 770

搭建一个支持HTTPS的私有DOCKER Registry

搭建一个支持HTTP的私有DOCKER Registry 可参考文章: http://blog.youkuaiyun.com/fgf00/article/details/52040492 测试可以用HTTP访问一下: http://IP:PORT/v2/ 如果要搭建一个支持HTTPS的私有DOCKER Registry,可参考文章: http://www.cnblogs.co

xcjing的博客 1万+

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 695

学Simulink——控制执行场景实例:基于Simulink的智能车辆电子稳定控制(ESC)仿真

本文完成了基于 Simulink 的智能车辆电子稳定控制(ESC),实现了:✅ 构建含轮胎非线性的车辆动力学模型✅ 设计滑模横摆稳定性控制器✅ 实现四轮制动力分配逻辑✅ 验证在双移线低附着场景下的卓越稳定性✅ 为主动安全控制系统开发提供完整范式。

xiaoheshang_123的博客 528

从零搭建内网服务:手把手教你在CentOS7上为Docker Registry配置自签名证书并全局信任

本文详细指导如何在CentOS7上为Docker Registry配置自签名证书并实现全局信任,涵盖证书生成、Docker Registry部署及客户端信任配置。通过update-ca-trust命令确保内网所有节点无缝信任证书,为企业提供安全可靠的私有镜像仓库解决方案。

369

sas协议(SAS PL-3)之Zoning功能

1 Zoning overview SAS zoning is implemented by a set of zoning expander devices with zoning enabled that define a zoned portion of a service delivery subsystem (ZPSDS)服务子系统. The zoning expander devices control whether a phy is permitted to participate in

sinat_37817094的博客 1530

解决Harvester部署RKE2集群时的私有CA证书信任问题

在Kubernetes集群部署中,TLS证书验证是确保安全通信的基础机制。当使用私有CA(Certificate Authority)签发证书时,节点默认不信任这些证书,导致x509验证失败。这一原理在RKE2集群部署过程中尤为关键,因为从Rancher获取bootstrap配置到建立持续通信都需要HTTPS连接。通过将私有CA根证书添加到系统信任库,并配置RKE2的additional-trust-bundle参数,可以解决证书链信任问题。Harvester作为新兴的超融合基础设施平台,与Rancher集

weixin_33919950的博客 347

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

docker容器三之docker仓库(hub、registry和harbor)

docker仓库介绍 docker hub docker hub介绍 docker hub公共仓库使用 私有仓库搭建(registry) 为什么需要搭建私有仓库 registry工作原理 私有仓库部署 私有仓库部署(添加证书加密功能) 私有仓库部署(添加用户认证功能) harbor仓库 harbor仓库介绍 harbor仓库部署(基础) harbor仓库部署(添加用户及项目) harbor仓库部署(添加功能)

L*YUE的博客 3万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

从零到信任:在CentOS 7上为你的Docker私有仓库和GitLab配置自签名证书

本文详细指导在CentOS 7系统上为Docker私有仓库和GitLab配置自签名证书的全过程,包括创建CA证书、部署系统信任链及服务端配置。重点解决内部系统通信的加密需求,通过update-ca-trust命令实现证书信任,确保数据传输安全。适合企业内部部署和开发测试环境使用。

anshaobiao6449的博客 384

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Docker 从 Openshift 内部 Registry 拉镜像遇到 x509: certificate signed by unknown authority 错误的解决方案

环境 Openshift 4.6 问题 Docker 从 Openshift 内部 Registry 拉镜像遇到 x509: certificate signed by unknown authority 错误 docker pull default-route-openshift-image-registry.apps.lab.example.com/ibm-spectrum-scale-ns/scale-gui:5.1.0.1 Trying to pull default-route-openshif

weixin_52344179的博客 1143

docker搭建私有仓库v2(Private Registry v2),自签发证书、公网访问、登录认证

如果不用自签发的证书,直接照着官方的步骤做就是了,已经很直白,但是如果需要用自签发的证书,稍微就比较麻烦,特别在用mac版的docker的时候有点坑,不过最后还是搭建成功了,现来分享下经验。假设registry的域名准备用hub.domain.com(后面出现它的地方均替换为你自己要用的域名),先ssh登录服务器,执行下面的步骤: 1. 先生成自签发证书,执行下面的命令:mkdir -p cert

陈鹏万里 5581

Docker Registry构建Docker私库

Docker Registry 1. 自签证书 mkdir -p certs # generate self-signed certifacate openssl req \ -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \ -x509 -days 365 -out certs/domain.crt 生成自签证书时,有个地方需要注意,域名可以自己随便定义一个,然后每个使用域名连接这个机器的主机必须更改hosts文件. -----

oneslide 522

搭建docker registry私服,并且支持https推送

docker registry私服搭建,并且支持https推送

qq_45003354的博客 1153
上一篇: GitLab 中国发行版如何设置镜像拉取策略?
下一篇: 执行 terraform init 命令时 timeout 的解决方法
DevOps008
博客等级 码龄8年 75粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值