【问题标题】:X509 parsing error, 'negative serial number' while pulling repositoryX509 解析错误,拉存储库时出现“负序列号”
【发布时间】:2014-08-27 12:10:53
【问题描述】:

我们的服务器通过代理访问互联网。当我尝试运行诸如

之类的拉取命令时
sudo docker run -t -i ubuntu:14.04 /bin/bash

我收到以下错误:

Get https://index.docker.io/v1/repositories/ubuntu/images: tls: failed to parse
    certificate from server: x509: negative serial number

wget 命令wget -S -d -O - https://get.docker.io 产生以下输出:

设置--output-document (outputdocument) to - DEBUG output created 通过 linux-gnu 上的 Wget 1.13.4。

URI 编码 = UTF-8' URI encoding =UTF-8' --2014-08-27 17:13:46-- https://get.docker.io/ 正在连接:... 已连接。创建套接字 3. 释放 0x00000000016829f0(新引用计数 0)。删除未使用的 0x00000000016829f0.

---请求开始--- CONNECT get.docker.io:443 HTTP/1.1 User-Agent: Wget/1.13.4 (linux-gnu) Proxy-Authorization: Basic Y3RzXDMxMzMwMDpzd2VldGZlbC4yOQ==

---请求结束---代理响应:[HTTP/1.1 200 Connection established Date: Wed, 27 Aug 2014 11:49:52 GMT Age: 0 Via: 1.0 xaahshshds

] 启动 SSL 握手。握手成功;连接的插座 3 到 SSL 处理 0x00000000016831c0 证书:主题: /emailAddress=aaa@bbbb.com/C=yy/ST=aa/L=xx/O=yy/OU=mycompany/CN=get.docker.io 发行人: /emailAddress=aaa@bbbb.com/C=yy/ST=aa/L=xx/O=yy/OU=mycompany/CN=mycompany 错误:无法验证 get.docker.io 颁发的证书 /emailAddress=aaa@bbbb.com/C=yy/ST=aa/L=xx/O=yy/OU=mycompany/CN=mycompany': Unable to locally verify the issuer's authority. To connect to get.docker.io insecurely, use--no-check-certificate'。关闭 3/SSL 0x00000000016831c0

请给我一些关于我应该如何处理这个问题的指导。

编辑:

我现在已禁用此 IP 段的代理,但我仍然收到相同的错误。 命令:wget -S -d -O - https://get.docker.io 现在得到以下输出:

Setting --output-document (outputdocument) to -
DEBUG output created by Wget 1.13.4 on linux-gnu.

URI encoding = `UTF-8'
--2014-09-04 11:26:12--  https://get.docker.io/
Resolving get.docker.io (get.docker.io)... 162.242.195.77
Caching get.docker.io => 162.242.195.77
Connecting to get.docker.io (get.docker.io)|162.242.195.77|:443... connected.
Created socket 3.
Releasing 0x00000000022d8fd0 (new refcount 1).
Initiating SSL handshake.
Handshake successful; connected socket 3 to SSL handle 0x00000000022dabd0
certificate:
  subject: /serialNumber=exkd9EjUozUulWIyUDurQPMEPBLSc2Bq/OU=GT98568428/OU=See www.rapidssl.com/resources/cps (c)13/OU=Domain Control Validated - RapidSSL(R)/CN=*.docker.io
  issuer:  /C=US/O=GeoTrust, Inc./CN=RapidSSL CA
X509 certificate successfully verified and matches host get.docker.io

---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.13.4 (linux-gnu)
Accept: */*
Host: get.docker.io
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 503 Service Unavailable
Server: nginx/1.7.1
Date: Thu, 04 Sep 2014 06:03:28 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: no-cache

---response end---

  HTTP/1.1 503 Service Unavailable
  Server: nginx/1.7.1
  Date: Thu, 04 Sep 2014 06:03:28 GMT
  Content-Type: text/html
  Transfer-Encoding: chunked
  Connection: keep-alive
  Cache-Control: no-cache
Registered socket 3 for persistent reuse.
Skipping 108 bytes of body: [<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>

] done.
2014-09-04 11:26:13 ERROR 503: Service Unavailable.

【问题讨论】:

  • 好吧,docker 是对的——序列号不应该是负数。它违反了政策,软件通常会容忍它。您可以让您的 IT 人员生成新证书吗?这可能最容易绕过这个问题。

标签: ssl docker x509


【解决方案1】:
subject: /emailAddress=aaa@bbbb.com/C=yy/ST=aa/L=xx/O=yy/OU=mycompany/CN=get.docker.io 
issuer: /emailAddress=aaa@bbbb.com/C=yy/ST=aa/L=xx/O=yy/OU=mycompany/CN=mycompany

您公司的代理似乎使用 SSL 拦截来检查 SSL 流量,这意味着您获得的是由您公司的代理 CA 签名的证书,而不是原始证书。您的系统似乎也不信任此代理 CA,因此验证失败。

我建议您联系您的防火墙管理员以了解如何处理该问题。他们会为 SSL 检查添加一个例外,或者他们会告诉您需要导入哪个证书作为您系统中的受信任证书。

【讨论】:

  • 请检查我的编辑。即使在我禁用代理后,我也会收到同样的错误。
  • 不,你得到一个不同的错误。证书检查很好,但服务器会向您发送一个错误。我没有收到此错误,但我也从您的站点获得了 get.docker.io 的不同 IP:54.205.182.244 107.22.52.107 vs. 162.242.195.77。当尝试访问您使用的同一 IP 时,我也会遇到与您相同的错误。这意味着要么服务器坏了,要么你的 DNS 不是最新的。
【解决方案2】:

对于使用 Go 1.6+ 编译的任何 Docker,都应该修复此问题,请参阅:https://github.com/golang/go/commit/a0ea93dea5f5741addc8c96b7ed037d0e359e33f

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 2023-03-29
    相关资源
    最近更新 更多