Moby: الوصول إلى السجل الخاص: x509: شهادة موقعة من سلطة غير معروفة

تم إنشاؤها على ٣٠ أكتوبر ٢٠١٤  ·  39تعليقات  ·  مصدر: moby/moby

قمت بإعداد docker-Registry مع nginx من خلال المتابعة هنا .

أقوم بتشغيل "تسجيل دخول عامل ميناء" ، احصل على هذا الخطأ:

# 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's:

[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

راجعت الرمز. أعتقد أن تسجيل الدخول قد يحتاج إلى "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 تحديث شهادات كاليفورنيا
  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 (والدفع / السحب) ، ولكن ليس تسجيل الدخول.

علامة --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/
"نعم"

أواجه نفس المشكلة في إصدار docker 1.3.2 و openuse 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 تحديث شهادات كاليفورنيا
  4. sudo systemctl docker stop
  5. بدء تشغيل sudo systemctl docker

ماريو

شكرا لك ، لقد نجح هذا أيضًا معي. الخطوات المكافئة على Ubuntu / Debian:

  1. انسخ شهادة CA إلى /usr/local/share/ca-certificates .
  2. sudo تحديث شهادات كاليفورنيا
  3. إعادة تشغيل عامل ميناء خدمة sudo

لا يزال هناك خطأ هنا ، على الرغم من. يقول المستندات إنه يجب تثبيت شهادة CA في /etc/docker/certs.d/<registry> ، ومن الواضح أن هذا ليس كافيًا. في الواقع ، بعد تثبيت الشهادة عالميًا ، قمت بإزالة الشهادة الموجودة في /etc/docker/certs.d ، وأعدت تشغيل Docker ، ولا تزال تعمل.

+1 لإعادة فتح هذا ، كما ذكر @ rhasselbaum

هل انتهى - غير الآمن - التسجيل؟

$ 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]
كتب:

هل انتهى - غير الآمن - التسجيل؟

$ عامل ميناء - الإصدار
إصدار Docker 1.8.2 ، بناء 0a8c2e3

docker $ - التسجيل الآمن
العلامة المقدمة ولكن لم يتم تعريفها: - التسجيل الآمن
انظر "عامل الإرساء - المساعدة".

ماذا يجب أن نستخدم الآن؟

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على 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-الشهادات إلى /etc/ca-certificates.conf

sudo dpkg- إعادة تكوين شهادات ca

إذا كانت حالة جهازك غير مهمة ، فيمكنك تشغيل docker-machine rm <machine-name> وإنشاء حالة أخرى ؛)

إذا كنت تستخدم LetsEncrypt ولا تريد تشغيل أي شيء بدون TLS المناسب ، فتأكد من تقديم السلسلة الكاملة للشهادة بما في ذلك الوسطاء (مثل REGISTRY_HTTP_TLS_CERTIFICATE = ... / fullchain.pem) قد ترى اللون الأخضر في Chrome بينما لا تزال تحصل على هذا الخطأ من Docker.

هتافات!

على أوبونتو. إذا واجهت خطأ:

  • x509: لا يمكن التحقق من صحة الشهادة لـ [عنوان IP أو اسم المجال] لأنه لا يحتوي على أي IP SANs

في سجل 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

ملاحظة ، لقد تمكنت من التحقق من وجود الاسم البديل للموضوع في الشهادة باستخدام الأمر التالي:
opensl x509 -in الشهادات. crt -النص -لاوت

ومع ذلك ، في عميل Ubuntu 14 (مثل Docker Engine)
هذا الخطأ تبعه
x509: شهادة موقعة من جهة غير معروفة

للأشخاص الذين يستخدمون Ubuntu 14.
ملف التكوين المستخدم لمحرك Docker (الذي أريد استخدامه للاتصال بـ Docker Registry):
/ etc / default / docker

هناك ، تحتاج إلى تحديد خيارات عامل الإرساء:
DOCKER_OPTS = "- التسجيل غير الآمن myinsecure. com: 5000 "

ثم أعد تشغيل البرنامج الخفي (أضف sudo إذا لم يُسمح للمستخدم ببدء خدمة عامل إرساء):
إعادة تشغيل عامل إرساء الخدمة $ [sudo]

لا يلزم أن تكون القيمة اسم مجال ، بل يجب أن تتطابق ببساطة مع ما تم تسجيل شهادتك به ؛ لدي عنوان IP مع منفذ وهذا يعمل ... (ieeg 100.100.100.100:100)

كل هذا استغرق مني يومًا ، لذلك ، أنشر هذا على أمل أن يكون مفيدًا للآخرين ...

JazzDeben شكرا لملاحظاتك! مفيد جدا ! لست متأكدًا من كيفية القيام بذلك باستخدام شهادة Let's Encript التي تم إنشاؤها من certbot.
أحصل على هذا الخطأ في خادم التسجيل

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 ، فعلت شيئًا مشابهًا ، ولكن منذ إعداد Docker daemon config (في /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.

لأولئك الذين يواجهون هذه المشكلة ولديك شهادات موقعة ذاتيًا ولا تريد استخدام توجيه "التسجيل غير الآمن" ، فأنت بحاجة إلى تحميل الشهادات الموقعة ذاتيًا إلى /etc/docker/certs.d/{host}/ . بعد تحميلها تذكر إعادة تشغيل docker daemon. لتوضيح المزيد .....

إذا كان السجل الخاص بك مستضافًا على 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. لكني أتلقى هذا الخطأ: استجابة خطأ من البرنامج الخفي: احصل على https: //: 10250 / v1 / users /: x509: شهادة موقعة من سلطة غير معروفة

لقد وضعت ملف .crt في /etc/docker/certs.d بالإضافة إلى شهادات / usr / share / ca على جهاز ubuntu 16.04 om intel الخاص بي. قمت بتشغيل شهادات CA ثم تحديثها وإعادة تشغيل عامل الإرساء. هذا هو ملف الشهادة الخاص بي nexus.cert:
opensl x509 دولار في 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 الخاص بك لاستخدام نفس الملف.
في حالتي ، كان:
[ root @ localhost ] # cat /etc/docker/daemon.json
{"سجلات غير آمنة": ["ريجستري-1.docker.io/v2:5000"]،
"تصحيح": صحيح ،
"tlscert": "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" <<<< ======
}

لم أرغب في استخدام تلك السجلات غير الآمنة .. ألا يمكن تشغيلها بدونها ؟؟ علاوة على ذلك ، الشهادة هي نفس شهادة الريبو .. تشيكوسلوفاكيا أنا نسخها من هناك.

أعتقد أنه يمكنك الركض بدون سجلات غير آمنة. هل يمكنك الوصول إلى الريبو الخاص بك بأمر "curl"؟
تحياتي الحارة.

De: Abhishek Dasgupta [mailto: [email protected]]
المبعوث: ماردي 18 يوليو 2017 18:30
À: موبي / موبي
نسخة إلى: Frédéric Castelain ؛ تعليق
الهدف: إعادة: [moby / moby] الوصول إلى السجل الخاص: x509: شهادة موقعة من سلطة غير معروفة (# 8849)

لم أرغب في استخدام تلك السجلات غير الآمنة .. ألا يمكن تشغيلها بدونها ؟؟ علاوة على ذلك ، الشهادة هي نفس شهادة الريبو .. تشيكوسلوفاكيا أنا نسخها من هناك.

-
أنت تتلقى هذا لأنك علقت.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/moby/moby/issues/8849#issuecomment-316120117 ، أو تجاهل الموضوع https://github.com/notifications/unsubscribe-auth/ANgcLAxGE34n7fSByG0svUJry3vtTAR7ks5 .

إشعار: قد يحتوي هذا البريد الإلكتروني (بما في ذلك أي مرفقات) على معلومات أو مواد خاصة أو سرية أو ذات امتياز قانوني ومخصص فقط لاستخدام المرسل إليه (المرسلون). إذا تلقيت هذا البريد الإلكتروني عن طريق الخطأ ، فيرجى حذفه من نظامك دون نسخه وإخطار المرسل (المرسلين) فورًا عن طريق الرد عبر البريد الإلكتروني. يُحظر تمامًا أي استخدام أو إفشاء غير مصرح به لهذه الرسالة. لا يضمن STEF سلامة هذا الإرسال ، وبالتالي قد لا يكون مسؤولاً أبدًا إذا تم تغيير الرسالة أو تزويرها ولا عن أي فيروس أو اعتراض أو تلف لنظامك.

AVIS: رسالة CE (y compris toutes pièces Jointes) peut contenir des information privées، trustielles 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 to la destruction de l'ensemble des éléments reçus، dont vous ne devez garder aucune copie. توصل إلى النشر والاستفادة من نسخ الرسالة أو التصاميم المتوافقة مع الأشخاص الآخرين أو التصاميم الداخلية. STEF ne garantit pas l'intégrité de cette transfer et ne saurait être tenu Responsable du message، de son contenu، de toute modification or falsification، d'une interception ou de dégâ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 .

عملت بشكل جيد بالنسبة لي على نظام تشغيل الفوتون.

كنت أعاني من هذا الخطأ حتى اكتشفت أنني كنت أقوم بتسمية الملف /etc/docker/certs.d/myregistry/ ca.pem بدلاً من /etc/docker/certs.d/myregistry/ ca.crt

كنت أواجه نفس المشكلة على Windows ، حتى نظرت إلى المستندات ، والتي تقترح استخدام المرجع المصدق الخاص بي في Windows Explorer ( 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 Ingress وشهادة SSL موجودة هناك. عند الوصول من مستعرض الويب ، ليس لدي مشكلة في SSL بشكل جيد ، وبيانات اعتماد تسجيل الدخول تعمل بشكل جيد. ولكن إذا قمت بتشغيل أمر تسجيل الدخول إلى docker ، فسأحصل على x509: شهادة موقعة من سلطة غير معروفة ، والتي أعتقد أنها تحاول الحصول على الخلفية الافتراضية للدخول مع شهادة SSL الموقعة ذاتيًا المزيفة. أقوم بإعادة تشغيل عامل الإرساء على جهاز الكمبيوتر الخاص بي لمعرفة ما إذا كان ذلك يساعد.

كان يعمل ... لقد أجريت تغييرًا بسيطًا على دخولي لدعم شهادة SSL جديدة لاسمي مضيفين
بعد إعادة تشغيل docker على الكمبيوتر المحمول الخاص بي لا تزال نفس المشكلة :(

مرحبًا إخوانه .. هذه المشكلة هي نفسها مع مشكلتي.
لا يمكن لـ Openshift استيراد صورة لمستودع nexus ، فإن sintax هو
ارتباط استيراد الصور oc- coba: 3.5 - من = 192.168.250.250: 8083 / node-nexus - تأكيد
خطأ: أخفقت العلامة الأخيرة: حدث خطأ داخلي: احصل على https://192.168.250.250 : 8083 / v2 /: x509: شهادة موقعة من سلطة غير معروفة
تم استيراد imagestream.image.openshift.io/nexus-coba مع وجود أخطاء
يضيف هذا الحل فقط - غير آمن بعد - تأكيد.

ارتباط استيراد الصور oc- coba: 3.5 - من = 192.168.250.250: 8083 / node-nexus - تأكيد - غير آمن

شكرا لك ، لقد نجح هذا أيضًا معي. الخطوات المكافئة على 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 Icon -> التفضيلات -> Daemon -> "سجلات غير آمنة" ، انقر فوق رمز +
أضف الريبو الخاص بك "your-registry.com"
انقر فوق "تطبيق وإعادة التشغيل"

image

راجع https://forums.docker.com/t/docker-private-registry-x509-certificate-signed-by-unknown-authority/21262/6 لمزيد من المعلومات.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات