Moby: доступ к частному реестру: x509: сертификат, подписанный неизвестным органом

Созданный на 30 окт. 2014  ·  39Комментарии  ·  Источник: moby/moby

Я настраиваю docker-registry с помощью nginx, следуя здесь .

Я запускаю docker login, получаю эту ошибку:

# docker login -u docker -p docker -e [email protected] https://dev.registry.com
2014/10/30 11:12:08 Error response from daemon: Server Error: Post https://dev.registry.com/v1/users/: x509: certificate signed by unknown authority

вывод docker daemon:

[debug] server.go:1181 Calling POST /auth
[info] POST /v1.15/auth
[47687bb1] +job auth()
[debug] endpoint.go:109 Error unmarshalling the _ping RegistryInfo: json: cannot unmarshal bool into Go value of type registry.RegistryInfo
[debug] endpoint.go:113 Registry version header: '0.7.1'
[debug] endpoint.go:116 RegistryInfo.Version: "0.7.1"
[debug] endpoint.go:119 Registry standalone header: 'True'
[debug] endpoint.go:127 RegistryInfo.Standalone: true
[debug] endpoint.go:109 Error unmarshalling the _ping RegistryInfo: json: cannot unmarshal bool into Go value of type registry.RegistryInfo
[debug] endpoint.go:113 Registry version header: '0.7.1'
[debug] endpoint.go:116 RegistryInfo.Version: "0.7.1"
[debug] endpoint.go:119 Registry standalone header: 'True'
[debug] endpoint.go:127 RegistryInfo.Standalone: true
Server Error: Post https://dev.registry.com/v1/users/: x509: certificate signed by unknown authority
[47687bb1] -job auth() = ERR (1)
[error] server.go:1207 Handler for POST /auth returned error: Server Error: Post https://dev.registry.com/v1/users/: x509: certificate signed by unknown authority
[error] server.go:110 HTTP Error: statusCode=500 Server Error: Post https://dev.registry.com/v1/users/: x509: certificate signed by unknown authority

Я проверил код. Думаю, может понадобиться функция Login 'tlsConfig'
https://github.com/docker/docker/blob/master/registry/auth.go#L163

как
https://github.com/docker/docker/blob/master/registry/registry.go#L49

# docker --version
Docker version 1.3.0, build c78088f
# curl --cacert ca.pem https://dev.registry.com/v1/_ping                 
true
# curl --cacert ca.pem -u docker:docker https://dev.registry.com/v1/users/
"OK"

# curl -u docker:docker https://dev.registry.com/v1/users/                
curl: (60) Peer certificate cannot be authenticated with known CA certificates
More details here: http://curl.haxx.se/docs/sslcerts.html

curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.

Самый полезный комментарий

Спасибо, у меня это тоже сработало. Эквивалентные шаги в Ubuntu / Debian:

  1. Скопируйте сертификат CA в /usr/local/share/ca-certificates .
  2. sudo update-ca-сертификаты
  3. перезапуск докера службы sudo

Однако здесь все еще есть ошибка. В документах говорится, что нужно установить сертификат CA в /etc/docker/certs.d/<registry> , и этого явно недостаточно. Фактически, после глобальной установки сертификата я удалил сертификат в /etc/docker/certs.d , перезапустил Docker, и он все еще работал.

Все 39 Комментарий

@hustcat Начиная с Docker 1.3.1, вы можете сделать --insecure-registry dev.registry.com:5000 вы можете заменить 5000 на любой порт, который прослушивает ваш реестр.

Я закрываю это сейчас, но дайте нам знать в комментариях, если это не решило вашу проблему.

Я оставляю это здесь, потому что мне потребовалось несколько минут, чтобы понять это, и, возможно, кто-то сэкономит время. Команда будет такой:

%> docker --insecure-registry=docker-registry.example.com:8080 login https://docker-registry.example.com:8080

Спасибо за установку переключателя для версии 1.3!

Я столкнулся с той же проблемой. Проверка сертификата работает для ping (и push / pull), но не для входа в систему.

Флаг --insecure-registry - это обходной путь, а не исправление. Проверка сертификата должна работать, если сертификат CA загружен в /etc/docker/certs.d/<registry> , но это не так.

Я не могу заставить его работать, установив --insecure-registry Я использую docker 1.3.2 на RedHat 7

[ root @ ip-10-2-20-209 ec2-user] # docker --insecure-registry = qa.docker.repo логин https: //qa.docker.repo
Имя пользователя: qa
Пароль:
Почта: [email protected]
2015/01/19 14:26:40 Ошибка ответа от демона: Ошибка сервера: Сообщение https: //qa.docker.repo/v1/users/ : x509: сертификат, подписанный неизвестным органом

curl отлично работает, когда я использую сгенерированный файл ca.pem.

curl --cacert /home/ec2-user/ca.pem -u qa: xxxxx https: //qa.docker.repo/v1/users/
"OK"

У меня такая же проблема с докером версии 1.3.2 и opensuse 13.1. Я даже пытался статически передавать --cafile cacert.pem при каждом вызове curl (поскольку я предполагал, что докер внутренне использует только curl), однако это тоже не помогло.

Любая помощь приветствуется.

Спасибо.
Марио

Прежде чем я обнаружил эту проблему, я открыл # 10150. Кажется, это одна и та же проблема.

Кажется, у меня такая же проблема. Клиент Archlinux 1.4.1 и реестр, работающий из официального контейнера докеров. У кого-нибудь есть мысли?

Если вы установили сертификат глобально (через CA-сертификаты), убедитесь, что вы перезапустили докер, поскольку он не будет перезагружать глобальные сертификаты ssl. Тем не менее, мой все еще не работает, но я столкнулся с этим на работе :)

Спасибо, мрачный, это помогло мне, и, наконец, это сработало. Я сделал:

  1. Загрузите cacert.pem с http://curl.haxx.se/docs/caextract.html.
  2. Скопируйте файл cacert.pem в / etc / pki / trust / anchors /
  3. sudo update-ca-сертификаты
  4. sudo systemctl docker stop
  5. sudo systemctl запуск докера

Марио

Спасибо, у меня это тоже сработало. Эквивалентные шаги в Ubuntu / Debian:

  1. Скопируйте сертификат CA в /usr/local/share/ca-certificates .
  2. sudo update-ca-сертификаты
  3. перезапуск докера службы sudo

Однако здесь все еще есть ошибка. В документах говорится, что нужно установить сертификат CA в /etc/docker/certs.d/<registry> , и этого явно недостаточно. Фактически, после глобальной установки сертификата я удалил сертификат в /etc/docker/certs.d , перезапустил Docker, и он все еще работал.

+1 за повторное открытие, как упомянул @rhasselbaum

--Insecure-registry пропал?

$ docker --version
Docker version 1.8.2, build 0a8c2e3

$ docker --insecure-registry
flag provided but not defined: --insecure-registry
See 'docker --help'.

Что нам теперь использовать?

который входит в файл конфигурации докера, вы можете проверить, установлен ли он, посмотрев на
в процессе докера вы должны увидеть флаг --insecure-registry

В среду, 16 сентября 2015 г., в 3:01, Крис Уизерс [email protected]
написал:

--Insecure-registry пропал?

$ docker --version
Докер версии 1.8.2, сборка 0a8c2e3

$ docker --insecure-registry
флаг предоставлен, но не определен: --insecure-registry
См. Docker --help.

Что нам теперь использовать?

-
Ответьте на это письмо напрямую или просмотрите его на GitHub
https://github.com/docker/docker/issues/8849#issuecomment -140693481.

У меня такая же ошибка для команды docker pull, и я думаю, что следующее должно работать.
Скопируйте сертификат SSL, который представляет собой файл .crt, в каталог.

sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt
Пусть Ubuntu добавит путь к файлу .crt относительно / usr / share / ca-Certificates в /etc/ca-certificates.conf

sudo dpkg-reconfigure ca-сертификаты

если состояние вашего компьютера не важно, вы можете запустить docker-machine rm <machine-name> и создать еще один;)

Если вы используете LetsEncrypt и не хотите запускать что-либо без надлежащего TLS, убедитесь, что предоставили полную цепочку сертификата, включая промежуточные звенья (например, REGISTRY_HTTP_TLS_CERTIFICATE = ... / fullchain.pem), вы можете увидеть зеленый цвет в Chrome, все еще получая эта ошибка от Docker.

Ваше здоровье!

На Ubuntu. Если вы столкнулись с ошибкой:

  • x509: невозможно проверить сертификат для [IP-адрес или доменное имя], поскольку он не содержит IP-сетей SAN.

В реестре Docker сертификат должен был быть скомпилирован с subjectAltName, как описано здесь:
https://docs.docker.com/engine/security/https/

Вот код для удобства:
$ echo subjectAltName = IP: 10.10.10.20, IP: 127.0.0.1> extfile.cnf
$ openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \
-CAcreateserial -out server-cert.pem -extfile extfile.cnf

Обратите внимание: я смог проверить, присутствует ли альтернативное имя субъекта в сертификате, используя следующую команду:
openssl x509 -in certificate.crt -text -noout

Однако на клиенте Ubuntu 14 (т.е. Docker Engine)
За этой ошибкой последовали
x509: сертификат, подписанный неизвестным органом

Для людей, использующих Ubuntu 14.
Файл конфигурации, который используется для механизма Docker (который я хочу использовать для подключения к реестру Docker):
/ и т. д. / по умолчанию / докер

там вам нужно указать параметры докера:
DOCKER_OPTS = "- insecure-registry myinsecure. Com: 5000 "

Затем перезапустите демон (добавьте sudo, если пользователю не разрешено запускать службу докеров):
$ [sudo] перезапуск докера службы

Значение не обязательно должно быть доменным именем, оно просто должно соответствовать тому, на что зарегистрирован ваш сертификат; У меня есть IP-адрес с портом, и это работает ... (например, 100.100.100.100:100)

Все это заняло у меня день, поэтому я публикую это в надежде, что это будет полезно другим людям ...

@JazzDeben Спасибо за ваши замечания! очень полезный ! Я не уверен, как это сделать с сертификатом, созданным Certbot Let's Encript.
я получаю эту ошибку на сервере реестра

tls: client didn't provide a certificate

Chrome жалуется на ERR_BAD_SSL_CLIENT_AUTH_CERT
если я включу

  tls:
...
    clientcas:
      - /path/to/ca.pem

@ cjw296 Для RHEL7.2 я редактировал файл /usr/lib/systemd/docker.service и в строку ExecStart добавил --insecure-registry=your.docker.registry.com .

< ExecStart=/usr/bin/dockerd
---
> ExecStart=/usr/bin/dockerd --insecure-registry=your.docker.registry.com

Затем я запустил sudo systemctl daemon-reload чтобы получить изменение конфигурации, а затем sudo systemctl restart docker . И теперь это работает.

Честно говоря, я все еще системный новичок, и, вероятно, есть более эффективные способы сделать это более аккуратно. Но я слишком долго боролся с этим и хотел опубликовать обходной путь. Спасибо @ cdub50 за то, что

@ david-drinn Для Fedora 25 я сделал нечто подобное, но, поскольку конфигурация демона докера (в /usr/lib/systemd/system/docker.service ) устанавливает исходные коды из файлов конфигурации, я внес изменения в /etc/sysconfig/docker :

< # INSECURE_REGISTRY='--insecure-registry='
---
> INSECURE_REGISTRY='--insecure-registry=your.docker.registry.com'

Если curl работает, а докер нет, вы можете:
o создать "/etc/docker/certs.d// ... "каталог и файлы (действительно только для частных реестров?)
o добавьте запись «tlscert» в файл «/etc/docker/daemon.json», чтобы dockerd использовал те же сертификаты, что и curl.

Тем, кто сталкивается с этой проблемой, и у вас есть самоподписанные сертификаты, и вы не хотите использовать директиву «insecure-registry», вам необходимо загрузить свои самоподписанные сертификаты в /etc/docker/certs.d/{host}/ . После загрузки не забудьте ПЕРЕЗАПУСТИТЬ демон докеров. Чтобы уточнить еще ...

Если ваш реестр размещен на https://exampleregistry.com, у вас должен быть каталог с именем /etc/docker/certs.d/exampleregistry.com с вашими самозаверяющими сертификатами внутри. Теперь вы сможете выполнить docker login exampleregistry.com без ошибки x509.
Теперь вот предостережение ко всему этому, допустим, вы хотите по какой-то причине явно определить порт в своей команде входа в систему, например, docker login exampleregistry.com:443 (что не имеет смысла, но это всего лишь пример), тогда вам нужно чтобы убедиться, что ваши самозаверяющие сертификаты находятся внутри папки с именем /etc/docker/certs.d/exampleregistry.com:443/ . Docker не делает никаких предположений о разрешении сертификатов на основе имени хоста только при использовании порта. Фактически вы должны предоставлять сертификаты для каждого порта, загружая свои самоподписанные сертификаты в имя папки, которое включает порт, к которому вы пытаетесь получить доступ.

Надеюсь, это избавит многих из вас, ребята, от необходимости отладки, использующей порты для подключения к вашему реестру докеров.

В моем случае это не решено:
Я хочу использовать самозаверяющий сертификат для репозитория nexus OSS. Но я получаю эту ошибку: Ответ от демона об ошибке: Get https: //: 10250 / v1 / users /: x509: сертификат, подписанный неизвестным органом

Я поместил файл .crt в /etc/docker/certs.d, а также / usr / share / ca-Certificates на мою машину ubuntu 16.04 om Intel. Затем я запустил update-ca-Certificates и перезапустил докер. это мой файл сертификата nexus.cert:
$ openssl x509 -in nexus.crt -text

Certificate:
    Data:
        Version: 1 (0x0)
        Serial Number: 1 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=IN, ST=State, L=City, O=XYZ, OU=x, CN=<mydomain.com>
        Validity
            Not Before: Jul 17 20:28:26 2017 GMT
            Not After : Jul 17 20:28:26 2018 GMT
        Subject: C=IN, ST=State, L=City, O=XYZ, OU=x, CN=<mydomain.com>
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (4096 bit)
                Modulus:
                    00:b8:2c:97:c2:e4:bf:7a:e1:49:22:9b:a2:90:7a:
                    3a:de:3d:d3:f5:e9:c9:8b:9b:c8:13:37:4b:36:32:
                    4f:a7:0d:b9:53:4c:f4:10:fa:e7:d2:64:a5:e9:0a:
                    32:49:c3:aa:f8:2c:27:82:94:85:c3:11:07:a7:d0:
                    6c:0a:4a:45:66:94:cb:d3:27:28:cd:58:43:5b:f9:
                    e1:66:97:52:81:be:03:53:d5:e1:84:0c:4f:89:fd:
                    78:6d:8f:88:cf:29:af:6d:14:2e:2e:dc:d4:f3:87:
                    1c:73:5e:35:cb:d2:95:58:20:55:c0:f5:89:e1:40:
                    64:16:cd:25:a8:bd:6b:6a:9c:21:b0:97:d2:67:63:
                    5c:3c:4a:2c:21:1a:72:3a:68:c6:a0:e2:ea:4d:f8:
                    db:bd:02:81:93:db:60:51:ad:6e:bf:d7:7d:45:43:
                    95:e1:a5:d7:de:36:76:7c:a4:d7:4a:7f:b2:b1:98:
                    75:7d:27:2c:1d:ad:03:1b:5f:8a:ac:12:5e:76:9c:
                    2a:f7:03:b0:51:6c:23:a4:df:08:1f:02:0c:42:b6:
                    ff:7f:33:16:b0:86:fc:92:e7:db:7a:3b:a2:70:30:
                    f4:79:fa:f1:0f:75:0f:32:69:79:97:73:f4:de:11:
                    3e:bf:f8:63:49:21:dc:02:c6:ef:de:91:74:03:6d:
                    21:56:2e:c6:04:d1:02:30:73:6e:52:c7:93:07:6c:
                    f9:98:ff:1c:cc:dd:da:c7:45:2e:7b:ab:04:33:fe:
                    39:6c:5d:d5:dd:46:ae:25:d6:fd:9d:01:ae:8a:e8:
                    14:18:cc:6e:64:e4:11:8a:ce:3d:30:56:6d:0c:a7:
                    83:90:6c:f5:14:36:16:39:cc:10:7a:db:35:f6:9c:
                    68:da:84:f6:9c:07:d0:3e:b7:52:54:03:75:9a:ae:
                    eb:79:b5:5f:cb:10:cf:25:08:ae:f7:b3:13:79:f4:
                    4a:98:72:08:e3:23:e2:22:a1:31:47:41:ec:a4:76:
                    42:db:1c:46:31:3c:a2:14:14:94:bf:4f:1e:1f:85:
                    a0:9c:4c:3d:af:92:7a:90:d1:ad:23:f0:ea:3e:7d:
                    b4:21:79:f9:82:3a:16:04:42:60:b8:5d:15:1c:48:
                    9b:1e:b5:9b:0d:1f:aa:56:aa:a2:1a:a5:6f:ef:ab:
                    2a:22:6d:05:19:c0:2b:dc:46:c4:c2:4a:f8:89:25:
                    fc:dc:e6:ab:7b:8a:76:de:47:a3:e2:00:0e:d7:e8:
                    bd:86:86:d3:8d:6b:56:63:bf:40:1e:31:d7:74:fe:
                    63:fc:7e:e2:9f:21:31:1d:39:2a:44:a5:56:fd:dd:
                    66:5e:c2:4f:94:c7:ee:26:89:1a:d1:6b:13:00:f6:
                    4f:72:9b
                Exponent: 65537 (0x10001)
    Signature Algorithm: sha256WithRSAEncryption
         25:26:77:55:50:0a:66:39:5f:79:c7:5e:af:5f:54:e2:92:6f:
         62:e5:90:3a:0f:de:9b:7a:02:df:66:47:c5:71:61:91:c4:74:
         ba:0e:55:34:47:0b:72:c5:f5:27:5d:d0:d6:06:a9:f7:5c:d5:
         41:30:4c:0f:0b:3a:3c:64:13:a0:28:9b:10:92:0e:c8:eb:e8:
         0f:00:ba:54:9d:d4:7a:8c:cd:f7:91:a9:55:69:0f:9b:12:77:
         e9:f2:28:c8:cb:07:d4:ab:a4:eb:b2:3d:ae:b4:6d:7a:15:85:
         cb:07:f6:e3:6b:58:1c:26:0a:ad:d5:e6:7c:b7:e7:19:6c:d1:
         31:80:5e:cb:17:85:88:a2:6c:fc:fe:3c:28:1f:f9:87:a6:0f:
         f6:85:d2:c0:76:25:fb:52:2f:8a:99:0c:88:4e:bd:84:6b:da:
         81:b4:41:f1:bf:1c:e7:7d:93:a5:e2:d7:66:8a:63:bf:9c:c4:
         ad:ea:cb:c4:c6:7d:1f:95:35:87:60:8b:e8:23:e8:4e:36:43:
         5e:86:de:c4:35:e0:29:7a:93:90:a4:9b:c3:d1:8e:13:55:9f:
         ea:ab:52:0a:a8:a0:54:cf:f4:5e:ff:12:40:09:43:3c:e7:55:
         e7:c1:de:62:ce:21:39:f5:d3:51:7a:92:f2:b2:3c:75:8c:1f:
         bd:aa:13:63
-----BEGIN CERTIFICATE-----
MIIEPDCCAyQCAQEwDQYJKoZIhvcNAQELBQAwZDELMAkGA1UEBhMCSU4xEjAQBgNV
BAgTCUthcm5hdGFrYTESMBAGA1UEBxMJQmFuZ2Fsb3JlMQwwCgYDVQQKEwNJQk0x
DDAKBgNVBAsTA2x0YzERMA8GA1UEAxMIbHRjeC5jb20wHhcNMTcwNzE3MjAyODI2
WhcNMTgwNzE3MjAyODI2WjBkMQswCQYDVQQGEwJJTjESMBAGA1UECAwJS2FybmF0
YWthMRIwEAYDVQQHDAlCYW5nYWxvcmUxDDAKBgNVBAoMA0lCTTEMMAoGA1UECwwD
bHRjMREwDwYDVQQDDAhsdGN4LmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBALgsl8Lkv3rhSSKbopB6Ot490/XpyYubyBM3SzYyT6cNuVNM9BD659Jk
pekKMknDqvgsJ4KUhcMRB6fQbApKRWaUy9MnKM1YQ1v54WaXUoG+A1PV4YQMT4n9
eG2PiM8pr20ULi7c1POHHHNeNcvSlVggVcD1ieFAZBbNJai9a2qcIbCX0mdjXDxK
LCEacjpoxqDi6k34270CgZPbYFGtbr/XfUVDleGl1942dnyk10p/srGYdX0nLB2t
AxtfiqwSXnacKvcDsFFsI6TfCB8CDEK2/38zFrCG/JLn23o7onAw9Hn68Q91DzJp
eZdz9N4RPr/4Y0kh3ALG796RdANtIVYuxgTRAjBzblLHkwds+Zj/HMzd2sdFLnur
BDP+OWxd1d1GriXW/Z0BroroFBjMbmTkEYrOPTBWbQyng5Bs9RQ2FjnMEHrbNfac
aNqE9pwH0D63UlQDdZqu63m1X8sQzyUIrvezE3n0SphyCOMj4iKhMUdB7KR2Qtsc
RjE8ohQUlL9PHh+FoJxMPa+SepDRrSPw6j59tCF5+YI6FgRCYLhdFRxImx61mw0f
qlaqohqlb++rKiJtBRnAK9xGxMJK+Ikl/Nzmq3uKdt5Ho+IADtfovYaG041rVmO/
QB4x13T+Y/x+4p8hMR05KkSlVv3dZl7CT5TH7iaJGtFrEwD2T3KbAgMBAAEwDQYJ
KoZIhvcNAQELBQADggEBACUmd1VQCmY5X3nHXq9fVOKSb2LlkDoP3pt6At9mR8Vx
YZHEdLoOVTRHC3LF9Sdd0NYGqfdc1UEwTA8LOjxkE6AomxCSDsjr6A8AulSd1HqM
zfeRqVVpD5sSd+nyKMjLB9SrpOuyPa60bXoVhcsH9uNrWBwmCq3V5ny35xls0TGA
XssXhYiibPz+PCgf+YemD/aF0sB2JftSL4qZDIhOvYRr2oG0QfG/HOd9k6Xi12aK
Y7+cxK3qy8TGfR+VNYdgi+gj6E42Q16G3sQ14Cl6k5Ckm8PRjhNVn+qrUgqooFTP
9F7/EkAJQzznVefB3mLOITn101F6kvKyPHWMH72qE2M=
-----END CERTIFICATE-----

@abdasgupta : можете ли вы "свернуть" свое репо?
Если да, проверьте, какой файл сертификатов использует curl, и отредактируйте файл daemon.json, чтобы использовать тот же файл.
В моем случае это было:
[ корень @ localhost ] # кот /etc/docker/daemon.json
{"insecure-registries": ["registry-1.docker.io/v2:5000"],
"отладка": правда,
"tlscert": "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" <<<< ======
}

Я не хотел использовать этот небезопасный реестр ... разве без него невозможно работать ?? кроме того, сертификат такой же, как у репо .. cz я скопировал оттуда.

Я думаю, вы можете работать без небезопасных реестров. Можете ли вы получить доступ к своему репо с помощью команды curl?
С наилучшими пожеланиями.

Де: Абхишек Дасгупта [mailto: [email protected]]
Посланник: марта 18 июля 2017 18:30
А: моби / моби
Копия: Фредерик Кастелен; Комментарий
Objet: Re: [moby / moby] доступ к частному реестру: x509: сертификат, подписанный неизвестным органом (# 8849)

Я не хотел использовать этот небезопасный реестр ... разве без него невозможно работать ?? кроме того, сертификат такой же, как у репо .. cz я скопировал оттуда.

-
Вы получили это, потому что прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub https://github.com/moby/moby/issues/8849#issuecomment-316120117 или отключите поток https://github.com/notifications/unsubscribe-auth/ANgcLAxGE34n7fSByG0svUJry3vtMNTAR7 .

ВНИМАНИЕ: это электронное письмо (включая любые вложения) может содержать информацию, которая является частной, конфиденциальной или юридически защищенной информацией или материалом и предназначена исключительно для использования адресатом (адресатами). Если вы получили это электронное письмо по ошибке, пожалуйста, удалите его из вашей системы, не копируя его, и немедленно уведомите отправителя (-ей) ответным электронным письмом. Любое несанкционированное использование или разглашение этого сообщения строго запрещено. STEF не гарантирует целостность этой передачи и поэтому никогда не несет ответственности за изменение или фальсификацию сообщения, а также за вирус, перехват или повреждение вашей системы.

AVIS: Ce message (y includes toutes pièces jointes) peut contenir des information privées, confidentielles et est pour l'usage du (es) seul (s) destinataire (s). Si vous avez reçu ce message par erreur, merci d'en avertir l'expéditeur par retour d'email immédiatement et de procéder à la destroy de l'ensemble des éléments reçus, dont vous ne devez garder aucune copy. Распространение, использование или копирование сообщения или обозначений, которые содержатся в каждом конкретном случае, который (-ы) предназначенный (-ые) дизайн (-ы) является интердитом. STEF ne garantit pas l'intégrité de cette transfer et ne saurait être tenu Ответственный за сообщение, de son content, de toute модификации или фальсификации, d'une interception или degâts à votre système.

@abdasgupta , я заметил, что версия 17.03.1~ce-0~ubuntu-xenial не работает, но версия 17.06.0~ce-0~ubuntu работает.

Я помещаю crt в /usr/local/share/ca-certificates/my-org/my-domain.crt , затем выполняю sudo update-ca-certificates и sudo systemctl restart docker .

Можете попробовать следовать инструкциям на странице https://docs.docker.com/v17.03/engine/security/certificates/ ? Docker 1.13 и выше должен также считывать сертификаты из системных значений по умолчанию, в противном случае;

Пользовательский сертификат настраивается путем создания каталога в /etc/docker/certs.d с тем же именем, что и имя хоста реестра (например, localhost ). Все файлы *.crt добавляются в этот каталог как корни CA.

После настройки сертификатов может потребоваться перезапуск демона.

Для тех, кто борется с решением /etc/docker/certs.d , убедитесь, что имя вашего каталога в нем включает порт реестра. Итак, /etc/docker/certs.d/myregistry.net:8443 .

У меня отлично работал на Photon OS.

Я боролся с этой ошибкой, пока не понял, что называю файл /etc/docker/certs.d/myregistry/ ca.pem вместо /etc/docker/certs.d/myregistry/ ca.crt

У меня была такая же проблема в Windows, пока я не посмотрел документы , в которых предлагается использовать мой центр сертификации в проводнике Windows ( ca.pem переименован в ca.crt ) и Right-Click > Install Certificate и выбрать Доверенные корневые центры сертификации для текущего пользователя. Перезапустил докер, и все заработало.

в Coreos мне пришлось отредактировать
/etc/docker/daemon.json
{ "insecure-registries": ["registry:8443"] }
затем sudo systemctl restart docker

Подсказка: если вы достигнете своего частного репо через прокси-сервер, вы можете получить такое же сообщение об ошибке, отключить прокси или настроить исключение (возможно, NO_PROXY) для частного узла реестра.

Я запускаю docker-registry как Kubernetes POD на Rancher. Я настроил вход L7, и сертификат SSL находится там. когда я получаю доступ из веб-браузера, у меня нет проблем с SSL, и учетные данные работают нормально. но если я запускаю команду входа в докер, я получаю сертификат x509:, подписанный неизвестным органом, который, как мне кажется, пытается получить входящий бэкэнд по умолчанию с поддельным самозаверяющим сертификатом SSL. Я перезапускаю докер на своем компьютере, чтобы посмотреть, поможет ли это.

Раньше это работало .... Я внес небольшие изменения в свой вход, чтобы поддерживать новый сертификат SSL для двух имен хостов
после перезапуска докера на моем ноутбуке все еще такая же проблема :(

Привет, братан. Эта проблема такая же, как и с моей проблемой.
Openshift не может импортировать изображение для репозитория nexus, синтаксис
oc import-image nexus- coba: 3.5 --from = 192.168.250.250: 8083 / node-nexus --confirm
ошибка: последний сбой тега: Произошла внутренняя ошибка: Получите https://192.168.250.250 : 8083 / v2 /: x509: сертификат, подписанный неизвестным органом
imagestream.image.openshift.io/nexus-coba импортирован с ошибками
Это Решение добавляет --insecure только после --confirm.

oc import-image nexus- coba: 3.5 --from = 192.168.250.250: 8083 / node-nexus --confirm --insecure

Спасибо, у меня это тоже сработало. Эквивалентные шаги в Ubuntu / Debian:

1. Copy CA cert to `/usr/local/share/ca-certificates`.

2. sudo update-ca-certificates

3. sudo service docker restart

Однако здесь все еще есть ошибка. В документах говорится, что нужно установить сертификат CA в /etc/docker/certs.d/<registry> , и этого явно недостаточно. Фактически, после глобальной установки сертификата я удалил сертификат в /etc/docker/certs.d , перезапустил Docker, и он все еще работал.

Большое вам спасибо! Я делал именно то, что вы описываете, выдергивая волосы из-за неправильной официальной документации ... :)

Я не верю! Спустя 5 лет все еще актуально, спасибо за решение.

Спасибо, у меня это тоже сработало. Эквивалентные шаги в Ubuntu / Debian:

1. Copy CA cert to `/usr/local/share/ca-certificates`.

2. sudo update-ca-certificates

3. sudo service docker restart

Однако здесь все еще есть ошибка. В документах говорится, что нужно установить сертификат CA в /etc/docker/certs.d/<registry> , и этого явно недостаточно. Фактически, после глобальной установки сертификата я удалил сертификат в /etc/docker/certs.d , перезапустил Docker, и он все еще работал.

Означает ли это, что я должен установить сертификат в образе докера реестра также в nginx?

Значок Docker-Desktop -> Настройки -> Демон -> «Небезопасные реестры», щелкните значок +
Добавьте свое репо "your-registry.com"
нажмите «Применить и перезапустить»

image

См. Https://forums.docker.com/t/docker-private-registry-x509-certificate-signed-by-unknown-authority/21262/6 для получения дополнительной информации.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги