docker pull遇见自签证书的https registry

1 概述:

1.1 tls客户端对服务端进行校验

校验一半至少包含2层,一层是检查服务端证书中的COMMON NAME字段以及SAN字段是否包含了请求中指定的域名或者IP,另外一层是检查服务端证书是不是被客户端信任的CA所签发。一个常见的情景是docker client尝试从镜像服务(暴露https端口)中拉取镜像,会从上述2个层次做检查,如果有一个检查不通过则无法拉取镜像。


2 遇见自签证书的https registry解决方案之一:

将registry的CA证书ca.crt复制到本地。

# 如果客户端是centos系统

# 1)安装工具包
yum install -y ca-certificates

# 2)复制ca.crt
/bin/cp -f ca.crt /etc/pki/ca-trust/source/anchors/

# 3)更新被信任的CA证书
update-ca-trust

# 4)重启本地dockerd(此步骤是必须的,否则依然报错x509: certificate signed by unknown authority)
systemctl daemon-reload
systemctl restart docker

# 如果客户端是ubuntu系统

# 1)安装工具包
apt-get install -y ca-certificates

# 2)复制ca.crt
/bin/cp ca.crt /usr/local/share/ca-certificates/

# 3)更新被信任的CA证书
update-ca-certificates

# 4)重启本地dockerd(此步骤是必须的,否则依然报错x509: certificate signed by unknown authority)
systemctl daemon-reload
systemctl restart docker

3 小结:

期望docker client忽略检查tls握手中的CA校验,可以在操作系统层面解决,例如公司内部的https服务都使用同一个CA证书,将证书分发到每台机器上并执行相关命令,即可实现机器上的所有进程都信任该CA,当然也包括docker client、curl等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值