繁体   English   中英

x509:由未知机构签署的证书 - 使用 docker 和 github

[英]x509: certificate signed by unknown authority - both with docker and with github

docker build -t oreng/iojs .

INFO[0000] Get https://index.docker.io/v1/repositories/library/iojs/images: x509: certificate signed by unknown authority. 

我的 Dockerfile 是

FROM iojs:latest
RUN useradd -ms /bin/bash developer
WORKDIR /home/developer
USER developer

hub create (使用https://github.com/github/hub

Post https://api.github.com/user/repos: x509: certificate signed by unknown authority 

正如在crypto/x509/root_unix.go ,Go(这是 Docker 使用的)将检查 CA 证书

"/etc/ssl/certs/ca-certificates.crt",     // Debian/Ubuntu/Gentoo etc.
"/etc/pki/tls/certs/ca-bundle.crt",       // Fedora/RHEL
"/etc/ssl/ca-bundle.pem",                 // OpenSUSE
"/etc/ssl/cert.pem",                      // OpenBSD
"/usr/local/share/certs/ca-root-nss.crt", // FreeBSD/DragonFly
"/etc/pki/tls/cacert.pem",                // OpenELEC
"/etc/certs/ca-certificates.crt",         // Solaris 11.2+

确保这些文件可用且未损坏。

CDN也可能存在零星问题,如以下评论所示

因为现在它有效:+1:。 一定是amazon边缘问题

最后一个线程还包括以下检查:

报告问题的用户要么没有这些文件,要么这些文件不包含rapidssl证书。
我们可以要求他们向我们发送这些文件并检查是否包含证书。
用户也可以试试这个:

openssl s_client -showcerts -verify 32 -connect index.docker.io:443

如果失败,则证书丢失。

关于 GitHub,请注意它目前正在遭受大规模 DDoS 攻击,除了证书问题之外,这可能还有其他副作用。

在 Ubuntu 16.04 中,也应该适用于其他版本。

/usr/local/share/ca-certificates下创建/复制 .crt :

sudo cp installation/certificates/docker-registry.crt \
/usr/local/share/ca-certificates

然后运行

sudo update-ca-certificates

这将在/etc/ssl/certs/ca-certificates.crt下添加证书,然后重新启动 docker:

sudo systemctl daemon-reload
sudo systemctl restart docker

好吧,我面临着类似的问题。 这是它,我在哪里:

我的场景:在 Oracle VB 上构建了一个 Ubuntu VM,并开始构建我的 K8s 集群。 docker 无法拉取 calico 图像。 抛出以下错误:

无法拉取映像“docker.io/calico/cni:v3.18.2”:rpc 错误 [...] INFO[0009] 获取https://registry-1.docker.io/v2 :x509:由未知签名的证书权威。

然后我尝试对默认注册表执行简单的“docker login”,这导致我遇到了同样的错误。

这些是从一整天的阅读和学习中学到的结果:

  1. 您可以使用自签名证书
  2. 可以从官网获取CA证书

TBH,以上课程都没有让我找到尤里卡!

所以,这就是我所做的

我从实际的注册表下载了证书,并将其添加到/etc/docker/certs/[registry_domain_name]并将相同的内容附加到服务器上的 SSL CA 证书。 你猜怎么着,我确实给了我结果。 所以下面是详细的步骤:

第 1 步:openssl s_client -showcerts -connect ${DOMAIN}:${PORT}</dev/null2>/dev/null|openssl x509 -outform PEM >ca.crt

我跑的: openssl s_client -showcerts -connect registry-1.docker.io:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >ca.crt

第 2 步:sudo cp ca.crt /etc/docker/certs.d/${DOMAIN}/ca.crt

我跑的: sudo cp ca.crt /etc/docker/certs.d/registry-1.docker.io/ca.crt

第 3 步cat ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt cat ca.crt | sudo tee -a /etc/ssl/certs/ca-certificates.crt

第 4 步sudo service docker restart

归功于博客: https : //rancher.com/docs/rancher/v1.6/en/environments/registries/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM