Moby: akses registri pribadi: x509: sertifikat yang ditandatangani oleh otoritas yang tidak dikenal

Dibuat pada 30 Okt 2014  ·  39Komentar  ·  Sumber: moby/moby

Saya mengatur docker-registry dengan nginx dengan mengikuti here .

Saya menjalankan 'docker login', dapatkan kesalahan ini:

# 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

keluaran daemon buruh pelabuhan:

[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

Saya memeriksa kodenya. Saya pikir fungsi Login mungkin perlu 'tlsConfig'
https://github.com/docker/docker/blob/master/registry/auth.go#L163

seperti
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.

Komentar yang paling membantu

Terima kasih, itu juga berhasil untuk saya. Langkah-langkah yang setara di Ubuntu/Debian:

  1. Salin sertifikat CA ke /usr/local/share/ca-certificates .
  2. sudo update-ca-sertifikat
  3. Sudo service docker restart

Masih ada bug di sini, meskipun. Dokumen mengatakan untuk menginstal sertifikat CA di /etc/docker/certs.d/<registry> , dan jelas itu tidak cukup. Faktanya, setelah menginstal sertifikat secara global, saya menghapus yang ada di /etc/docker/certs.d , memulai ulang Docker, dan masih berfungsi.

Semua 39 komentar

@hustcat Pada Docker 1.3.1, Anda dapat melakukan --insecure-registry dev.registry.com:5000 Anda dapat mengganti 5000 dengan port mana pun yang didengarkan oleh registri Anda.

Saya menutup ini sekarang, tetapi beri tahu kami di komentar jika ini tidak menyelesaikan masalah Anda.

Saya meninggalkan ini di sini b/c butuh beberapa menit untuk mengetahuinya, dan mungkin menghemat waktu seseorang. Perintahnya adalah:

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

Terima kasih telah memasang sakelar untuk 1.3!

Saya menghadapi masalah yang sama. Validasi sertifikat berfungsi untuk ping (dan mendorong/menarik), tetapi tidak masuk.

Bendera --insecure-registry adalah solusi, bukan perbaikan. Validasi sertifikat akan berfungsi jika sertifikat CA dimuat ke /etc/docker/certs.d/<registry> , tetapi tidak.

Saya tidak dapat membuatnya berfungsi dengan mengatur --insecure-registry Saya menggunakan buruh pelabuhan 1.3.2 di RedHat 7

[ root@ip-10-2-20-209 ec2-user]# docker --insecure-registry=qa.docker.repo login https://qa.docker.repo
Nama pengguna: qa
Kata sandi:
Email: [email protected]
2015/01/19 14:26:40 Respons kesalahan dari daemon: Kesalahan Server: Posting https://qa.docker.repo/v1/users/ : x509: sertifikat ditandatangani oleh otoritas yang tidak dikenal

curl berfungsi dengan baik ketika saya menggunakan file ca.pem yang dihasilkan.

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

Saya mengalami masalah yang sama pada buruh pelabuhan versi 1.3.2 dan openuse 13.1. Saya bahkan mencoba meneruskan --cafile cacert.pem secara statis ke setiap panggilan curl (karena saya menganggap buruh pelabuhan secara internal hanya menggunakan curl), namun, ini juga tidak membantu.

Bantuan apa pun akan sangat dihargai.

Terima kasih.
mario

Sebelum saya menemukan masalah ini, saya membuka #10150. Mereka tampaknya menjadi masalah yang sama.

Sepertinya saya mengalami masalah yang sama. Klien Archlinux 1.4.1 dan registri yang dijalankan dari wadah buruh pelabuhan resmi. Ada yang punya pikiran?

Jika Anda telah menginstal sertifikat secara global (melalui sertifikat-ca) pastikan Anda memulai ulang buruh pelabuhan karena tidak akan memuat ulang sertifikat SSL global. Yang mengatakan, milik saya masih tidak berfungsi, tetapi saya mengalaminya di tempat kerja :)

Terima kasih grimmy, itu berhasil di pihak saya dan akhirnya berhasil. Ya:

  1. Dapatkan cacert.pem dari http://curl.haxx.se/docs/caextract.html
  2. Salin file cacert.pem ke /etc/pki/trust/anchors/
  3. sudo update-ca-sertifikat
  4. Sudo systemctl docker stop
  5. sudo systemctl docker start

mario

Terima kasih, itu juga berhasil untuk saya. Langkah-langkah yang setara di Ubuntu/Debian:

  1. Salin sertifikat CA ke /usr/local/share/ca-certificates .
  2. sudo update-ca-sertifikat
  3. Sudo service docker restart

Masih ada bug di sini, meskipun. Dokumen mengatakan untuk menginstal sertifikat CA di /etc/docker/certs.d/<registry> , dan jelas itu tidak cukup. Faktanya, setelah menginstal sertifikat secara global, saya menghapus yang ada di /etc/docker/certs.d , memulai ulang Docker, dan masih berfungsi.

+1 untuk membuka kembali ini, seperti yang disebutkan @rhasselbaum

Apakah --insecure-registry sudah hilang?

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

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

Apa yang harus kita gunakan sekarang?

yang ada di file konfigurasi buruh pelabuhan, Anda dapat memeriksa apakah sudah disetel dengan melihat
proses buruh pelabuhan Anda akan melihat tanda --insecure-registry

Pada Rabu, 16 Sep 2015 jam 3:01, Chris Withers [email protected]
menulis:

Apakah --insecure-registry sudah hilang?

$ buruh pelabuhan --versi
Docker versi 1.8.2, build 0a8c2e3

$ buruh pelabuhan --insecure-registry
bendera disediakan tetapi tidak ditentukan: --insecure-registry
Lihat 'docker --help'.

Apa yang harus kita gunakan sekarang?


Balas email ini secara langsung atau lihat di GitHub
https://github.com/docker/docker/issues/8849#issuecomment -140693481.

Saya mendapat kesalahan yang sama untuk perintah docker pull dan saya pikir yang berikut ini akan berfungsi.
Salin sertifikat SSL yang merupakan file '.crt' ke direktori

sudo cp foo.crt /usr/share/ca-certificates/extra/foo.crt
Biarkan Ubuntu menambahkan jalur file '.crt' relatif ke /usr/share/ca-certificates ke /etc/ca-certificates.conf

sudo dpkg-konfigurasi ulang ca-sertifikat

jika status mesin Anda tidak penting, maka Anda dapat menjalankan docker-machine rm <machine-name> dan membuat yang lain;)

Jika Anda menggunakan LetsEncrypt dan Anda tidak ingin menjalankan apa pun tanpa TLS yang tepat, pastikan untuk memberikan rantai lengkap sertifikat termasuk perantara (yaitu REGISTRY_HTTP_TLS_CERTIFICATE=.../fullchain.pem) Anda mungkin melihat warna hijau di Chrome saat masih mendapatkan kesalahan ini dari Docker.

Bersulang!

Di Ubuntu. Jika Anda mengalami kesalahan:

  • x509: tidak dapat memvalidasi sertifikat untuk [alamat IP atau nama domain] karena tidak mengandung IP SAN apa pun

Di registri Docker, sertifikat harus dikompilasi dengan subjectAltName seperti yang dijelaskan di sini:
https://docs.docker.com/engine/security/https/

Berikut adalah kode untuk kenyamanan:
$ 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

Catatan, saya dapat memeriksa nama alternatif subjek yang ada di sertifikat menggunakan perintah berikut:
openssl x509 -dalam sertifikat.crt -teks -noout

Namun, pada klien Ubuntu 14 (yaitu Docker Engine)
Kesalahan ini diikuti oleh
x509: sertifikat yang ditandatangani oleh otoritas yang tidak dikenal

Untuk orang yang menggunakan Ubuntu 14.
File konfigurasi yang digunakan untuk mesin Docker (yang ingin saya gunakan untuk terhubung ke Registri Docker):
/etc/default/docker

di sana, Anda perlu menentukan opsi buruh pelabuhan:
DOCKER_OPTS = "- tidak aman-registry myinsecure. Com: 5000 "

Kemudian restart daemon (tambahkan sudo jika pengguna Anda tidak diizinkan untuk memulai layanan buruh pelabuhan):
$ [sudo] layanan buruh pelabuhan restart

Nilainya tidak harus berupa nama domain, cukup sesuai dengan sertifikat yang Anda daftarkan; Saya memiliki alamat IP dengan port dan ini berfungsi... (mis. 100.100.100.100:100)

Semua ini membutuhkan waktu sehari, jadi, saya memposting ini dengan harapan dapat bermanfaat bagi orang lain ...

@JazzDeben Terima kasih atas komentar Anda! sangat berguna ! saya tidak yakin bagaimana melakukannya dengan sertifikat yang dihasilkan certbot Let's Encript.
saya mendapatkan kesalahan ini di server registri

tls: client didn't provide a certificate

Chrome mengeluh tentang ERR_BAD_SSL_CLIENT_AUTH_CERT
jika saya termasuk

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

@cjw296 Untuk RHEL7.2, saya mengedit file, /usr/lib/systemd/docker.service , dan di baris ExecStart menambahkan --insecure-registry=your.docker.registry.com .

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

Kemudian saya menjalankan sudo systemctl daemon-reload untuk mengambil perubahan konfigurasi, diikuti oleh sudo systemctl restart docker . Dan sekarang berhasil.

Sejujurnya, saya masih pemula systemd dan mungkin ada cara yang lebih baik untuk melakukan ini dengan lebih bersih. Tapi saya berjuang dengan ini terlalu lama, dan ingin memposting solusi. Terima kasih kepada @cdub50 karena telah membimbing saya ke arah yang benar.

@david-drinn Untuk Fedora 25, saya melakukan hal serupa, tetapi karena konfigurasi daemon docker (dalam /usr/lib/systemd/system/docker.service ) mengatur sumber dari file konfigurasi, saya membuat perubahan di /etc/sysconfig/docker :

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

Jika curl berfungsi dan buruh pelabuhan tidak, Anda dapat:
o buat file "/etc/docker/certs.d//..." direktori & file (berlaku hanya untuk registri pribadi?)
o tambahkan entri "tlscert" di file "/etc/docker/daemon.json" Anda, sehingga dockerd menggunakan sertifikat yang sama seperti curl.

Bagi mereka yang mengalami masalah ini dan Anda memiliki sertifikat yang ditandatangani sendiri dan Anda tidak ingin menggunakan arahan "registry tidak aman", maka Anda perlu memuat sertifikat yang ditandatangani sendiri ke /etc/docker/certs.d/{host}/ . Setelah memuatnya, ingatlah untuk RESTART daemon buruh pelabuhan. Untuk menguraikan lebih lanjut .....

Jika registri Anda di-host di https://exampleregistry.com, Anda harus memiliki direktori bernama /etc/docker/certs.d/exampleregistry.com dengan sertifikat yang ditandatangani sendiri di dalamnya. Sekarang Anda dapat melakukan docker login exampleregistry.com tanpa kesalahan x509.
Sekarang di sini adalah peringatan untuk semua ini, katakanlah Anda ingin karena alasan tertentu secara eksplisit mendefinisikan port dalam perintah login Anda seperti ini docker login exampleregistry.com:443 (yang tidak masuk akal, tetapi ini hanya sebuah contoh) maka Anda perlu untuk memastikan bahwa sertifikat yang Anda tanda tangani sendiri berada di dalam folder bernama /etc/docker/certs.d/exampleregistry.com:443/ . Docker tidak membuat asumsi tentang penyelesaian sertifikat berdasarkan nama host hanya saat menggunakan port. Anda harus benar-benar memberikan sertifikat pada basis per port dengan memuat sertifikat yang ditandatangani sendiri ke dalam nama folder yang menyertakan port yang Anda coba akses.

Semoga ini menghemat banyak dari kalian banyak debugging yang menggunakan port untuk terhubung ke registri buruh pelabuhan Anda.

Ini tidak diselesaikan dalam kasus saya:
Saya ingin menggunakan sertifikat yang ditandatangani sendiri untuk repositori nexus OSS. Tapi saya mendapatkan kesalahan ini: Respons kesalahan dari daemon: Dapatkan https://:10250/v1/pengguna/: x509: sertifikat ditandatangani oleh otoritas yang tidak dikenal

Saya telah menempatkan file .crt di /etc/docker/certs.d serta /usr/share/ca-certificates di mesin intel ubuntu 16.04 om saya. Saya menjalankan kemudian memperbarui-ca-sertifikat dan memulai kembali buruh pelabuhan. ini adalah file sertifikat saya nexus.cert:
$ openssl x509 -di nexus.crt -teks

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 : dapatkah Anda "menggulung" repo Anda?
Jika demikian, periksa file curl sertifikat mana yang digunakan, dan edit file daemon.json Anda untuk menggunakan file yang sama.
Dalam kasus saya, itu adalah:
[ root@localhost ]# cat /etc/docker/daemon.json
{ "insecure-registries":["registry-1.docker.io/v2:5000"],
"debug":benar,
"tlscert": "/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem" <<<<======
}

Saya tidak ingin menggunakan registri tidak aman itu .. apakah tidak mungkin berjalan tanpanya ?? apalagi sertifikatnya sama dengan repo.. cz saya copy dari sana.

Saya kira Anda dapat menjalankan tanpa registri tidak aman. Bisakah Anda mencapai repo Anda dengan perintah "curl"?
Salam.

De : Abhishek Dasgupta [mailto:[email protected]]
Utusan : mardi 18 juillet 2017 18:30
: moby/moby
Cc : Frédéric Castelain; Komentar
Objek : Re: [moby/moby] mengakses private registry: x509: sertifikat yang ditandatangani oleh otoritas yang tidak dikenal (#8849)

Saya tidak ingin menggunakan registri tidak aman itu .. apakah tidak mungkin berjalan tanpanya ?? apalagi sertifikatnya sama dengan repo.. cz saya copy dari sana.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub https://github.com/moby/moby/issues/8849#issuecomment-316120117 , atau bisukan utasnya https://github.com/notifications/unsubscribe-auth/ANgcLAxGE34n7fSByG0svUJry3vtTAR7ks5sPN2 .

PEMBERITAHUAN: Email ini (termasuk lampiran apa pun) mungkin berisi informasi yang bersifat pribadi, rahasia, atau informasi atau materi yang memiliki hak istimewa secara hukum dan ditujukan semata-mata untuk digunakan oleh penerima. Jika Anda menerima email ini karena kesalahan, harap hapus dari sistem Anda tanpa menyalinnya dan segera beri tahu pengirim melalui email balasan. Dilarang keras menggunakan atau mengungkapkan pesan ini tanpa izin. STEF tidak menjamin integritas transmisi ini dan karena itu tidak akan pernah bertanggung jawab jika pesan diubah atau dipalsukan atau untuk virus, intersepsi, atau kerusakan apa pun pada sistem Anda.

AVIS : Ce message (y compris toutes pièces jointes) peut contenir des informations privées, confidenceielles et est pour l'usage du(es) seul(s) destinataire(s). Si vous avez reçu ce pesan par erreur, merci d'en avertir l'expéditeur par retour d'email segera dan de procéder la de l'ensemble des éléments reçus, jangan vous ne devez garder aucune copy. Toute difusi, pemanfaatan ou copy de ce pesan ou des renseignements qu'il contient par une personne autre que le(les) destinataire(s) désigné(s) est interdite. STEF ne garantit pas l'intégrité de cette transmission et ne saurait tre tenu responsable du message, de son contenu, de toute modifikasi ou pemalsuan, d'une interception ou de dégâts votre système.

@abdasgupta , saya perhatikan bahwa versi 17.03.1~ce-0~ubuntu-xenial tidak berfungsi, tetapi versi 17.06.0~ce-0~ubuntu berfungsi.

Saya menempatkan crt ke /usr/local/share/ca-certificates/my-org/my-domain.crt , lalu lakukan sudo update-ca-certificates dan sudo systemctl restart docker .

Bisakah Anda mencoba mengikuti instruksi di https://docs.docker.com/v17.03/engine/security/certificates/ ? Docker 1.13 dan yang lebih baru juga harus membaca sertifikat dari default sistem, jika tidak;

Sertifikat kustom dikonfigurasi dengan membuat direktori di bawah /etc/docker/certs.d menggunakan nama yang sama dengan nama host registri (mis., localhost ). Semua file *.crt ditambahkan ke direktori ini sebagai root CA.

Setelah mengonfigurasi sertifikat, mungkin perlu me-restart daemon

Bagi siapa saja yang kesulitan dengan solusi /etc/docker/certs.d , pastikan nama direktori Anda di bawahnya menyertakan port registri. Jadi /etc/docker/certs.d/myregistry.net:8443 .

Bekerja dengan baik untuk saya di Photon OS.

Saya berjuang dengan kesalahan ini sampai saya pikir saya menamai file /etc/docker/certs.d/myregistry/ ca.pem bukan /etc/docker/certs.d/myregistry/ ca.crt

Saya mengalami masalah yang sama di Windows, sampai saya melihat docs , yang menyarankan menggunakan otoritas sertifikat saya di Windows Explorer ( ca.pem diganti namanya menjadi ca.crt ) dan Right-Click > Install Certificate dan pilih Otoritas Sertifikat Root Tepercaya untuk pengguna saat ini. Restart buruh pelabuhan dan berhasil.

di coreos, saya harus mengedit
/etc/docker/daemon.json
{ "insecure-registries": ["registry:8443"] }
lalu sudo systemctl restart docker

Petunjuk: Jika Anda mencapai repo pribadi Anda melalui proxy, Anda dapat mengalami pesan kesalahan yang sama, menonaktifkan proxy atau mengonfigurasi pengecualian (mungkin NO_PROXY) untuk host registri pribadi.

Saya menjalankan docker-registry sebagai POD Kubernetes di Rancher. Saya telah mengonfigurasi L7 Ingress dan sertifikat SSL ada di sana. ketika saya mengakses dari browser Web, saya tidak punya masalah SSL baik-baik saja, dan kredensial masuk berfungsi dengan baik. tetapi jika saya menjalankan perintah login buruh pelabuhan, saya mendapatkan sertifikat x509: yang ditandatangani oleh otoritas yang tidak dikenal, yang saya yakini sedang mencoba untuk mendapatkan backend ingress default dengan sertifikat SSL Self-signed palsu. Saya memulai ulang buruh pelabuhan di komputer saya untuk melihat apakah itu membantu.

Dulu berfungsi .... Saya membuat sedikit perubahan pada ingress saya untuk mendukung sertifikat SSL baru untuk dua nama host
setelah me-restart buruh pelabuhan di laptop saya masih masalah yang sama :(

Hi Bro.. Masalah ini sama dengan masalah saya.
Openshift tidak dapat mengimpor gambar untuk repositori nexus, sintaksnya adalah
oc import-image nexus- coba:3.5 --from=192.168.250.250:8083/node-nexus --confirm
kesalahan: tag terbaru gagal: Terjadi kesalahan internal: Dapatkan https://192.168.250.250 :8083/v2/: x509: sertifikat ditandatangani oleh otoritas yang tidak dikenal
imagestream.image.openshift.io/nexus-coba diimpor dengan kesalahan
Solusi ini hanya menambahkan --insecure setelah --confirm.

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

Terima kasih, itu juga berhasil untuk saya. Langkah-langkah yang setara di Ubuntu/Debian:

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

2. sudo update-ca-certificates

3. sudo service docker restart

Masih ada bug di sini, meskipun. Dokumen mengatakan untuk menginstal sertifikat CA di /etc/docker/certs.d/<registry> , dan jelas itu tidak cukup. Faktanya, setelah menginstal sertifikat secara global, saya menghapus yang ada di /etc/docker/certs.d , memulai ulang Docker, dan masih berfungsi.

Terima kasih yang sebesar-besarnya! Saya melakukan persis seperti yang Anda gambarkan, menarik rambut saya dari dokumentasi resmi menjadi salah ... :)

Saya tidak percaya! 5 tahun kemudian, masih benar, terima kasih atas solusinya.

Terima kasih, itu juga berhasil untuk saya. Langkah-langkah yang setara di Ubuntu/Debian:

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

2. sudo update-ca-certificates

3. sudo service docker restart

Masih ada bug di sini, meskipun. Dokumen mengatakan untuk menginstal sertifikat CA di /etc/docker/certs.d/<registry> , dan jelas itu tidak cukup. Faktanya, setelah menginstal sertifikat secara global, saya menghapus yang ada di /etc/docker/certs.d , memulai ulang Docker, dan masih berfungsi.

Apakah ini berarti saya harus menginstal sertifikat di gambar buruh pelabuhan registri juga di nginx?

Ikon Docker-Desktop -> Preferensi -> Daemon -> "Pendaftaran tidak aman", klik + ikon
Tambahkan repo Anda "your-registry.com"
klik "Terapkan & Mulai Ulang"

image

Lihat https://forums.docker.com/t/docker-private-registry-x509-certificate-signed-by-unknown-authority/21262/6 untuk info lebih lanjut.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat