X509: сертификат, подписанный неизвестным органом, при использовании входа в систему docker с удаленного компьютера

#docker #ssl #centos #ssl-certificate #nexus3

Вопрос:

Я пытаюсь получить доступ к частной связь РЕПО. используя настройки входа в систему с удаленного компьютера в той же сети и, несмотря на я следовал инструкции в документации докера я все еще получаю x509 в: certfificate подписан неизвестным органом ошибки, я на CentOS с 8 машина, с Nexus ОСС 3.29.2-02, я настроил репо по следующей документации Настройка SSL и я создал самостоятельно подписанный сертификат с помощью Java keytool и это работает, когда я получить доступ к нему из браузера на том же компьютере, так и на удаленном компьютере, в /приложение/sonatype-работа/nexus3/войти/Нексус.файл журнала журнала ошибок нет. я скопировал сертификат .КВЖД в файле/etc/докер/сертификаты.д/домен:порт/ место, затем я скопировал его в /и т. д./ИПК/ЦС-целевой/источник/якоря/ и побежал судо обновление-ка-доверие ПО в Docker документы: докер реестра неуверенно , когда я помощью keytool -printcert -sslserver домен:порт -в от удаленной машины сертификата напечатан. когда я получаю данные с удаленного компьютера, он работает, сертификат успешно подтвержден и данные загружены. я проверил много тем, но все они говорят о размещении сертификата в вышеупомянутых местах, что я уже сделал. заранее спасибо.

———————-обновление—————————

 [mehdilapin@localhost ~]$ wget https://mycustomregistry.com:7575
--2021-04-11 14:53:59--  https://mycustomregistry.com:7575/
Auflösen des Hostnamens mycustomregistry.com (mycustomregistry.com)… 192.168.1.9
Verbindungsaufbau zu mycustomregistry.com (mycustomregistry.com)|192.168.1.9|:7575 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 8903 (8,7K) [text/html]
Wird in »index.html.2« gespeichert.

index.html.2                                         100%[=====================================================================================================================>]   8,69K  --.-KB/s    in 0s      

2021-04-11 14:53:59 (287 MB/s) - »index.html.2« gespeichert [8903/8903]

[mehdilapin@localhost ~]$ sudo keytool -printcert -sslserver mycustomregistry.com:4563/registry/api -v
Certificate #0
====================================
Eigentümer: CN=mycustomregistry.com, OU=organization Unit, O=organization, L=USA, ST=NewYork, C=US
Aussteller: CN=mycustomregistry.com, OU=organization Unit, O=organization, L=USA, ST=NewYork, C=US
Seriennummer: 68e917a2
Gültig von: Sun Apr 11 14:34:54 CET 2021 bis: Mon Apr 11 14:34:54 CET 2022
Zertifikatsfingerprints:
     SHA1: 05:95:71:99:93:D1:30:A0:D1:82:0C:73:61:47:69:F0:2A:A4:52:B3
     SHA256: EA:8A:0A:0C:C6:4B:BE:73:57:78:CC:DC:08:DE:92:8E:04:6F:B8:3E:8F:2A:71:C8:AD:5A:E7:19:BB:31:7C:AE
Signaturalgorithmusname: SHA256withRSA
Public Key-Algorithmus von Subject: 2048-Bit-RSA-Schlüssel
Version: 3

Erweiterungen: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: EF C5 91 38 62 ED 54 12   4E AA 9C 0F C6 73 F2 0C  ...8b.T.N....s..
0010: 83 BF CA 5E                                        ...^
]
]

[mehdilapin@localhost ~]$ sudo keytool -printcert -file /etc/docker/certs.d/mycustomregistry.com:4563/ca-certificate.cer 
Eigentümer: CN=mycustomregistry.com, OU=organization Unit, O=organization, L=USA, ST=NewYork, C=US
Aussteller: CN=mycustomregistry.com, OU=organization Unit, O=organization, L=USA, ST=NewYork, C=US
Seriennummer: 68e917a2
Gültig von: Sun Apr 11 14:34:54 CET 2021 bis: Mon Apr 11 14:34:54 CET 2022
Zertifikatsfingerprints:
     SHA1: 05:95:71:99:93:D1:30:A0:D1:82:0C:73:61:47:69:F0:2A:A4:52:B3
     SHA256: EA:8A:0A:0C:C6:4B:BE:73:57:78:CC:DC:08:DE:92:8E:04:6F:B8:3E:8F:2A:71:C8:AD:5A:E7:19:BB:31:7C:AE
Signaturalgorithmusname: SHA256withRSA
Public Key-Algorithmus von Subject: 2048-Bit-RSA-Schlüssel
Version: 3

Erweiterungen: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: EF C5 91 38 62 ED 54 12   4E AA 9C 0F C6 73 F2 0C  ...8b.T.N....s..
0010: 83 BF CA 5E                                        ...^
]
]


[mehdilapin@localhost ~]$ sudo keytool -printcert -file /etc/pki/ca-trust/source/anchors/ca-certificate.cer -v
Eigentümer: CN=mycustomregistry.com, OU=organization Unit, O=organization, L=USA, ST=NewYork, C=US
Aussteller: CN=mycustomregistry.com, OU=organization Unit, O=organization, L=USA, ST=NewYork, C=US
Seriennummer: 68e917a2
Gültig von: Sun Apr 11 14:34:54 CET 2021 bis: Mon Apr 11 14:34:54 CET 2022
Zertifikatsfingerprints:
     SHA1: 05:95:71:99:93:D1:30:A0:D1:82:0C:73:61:47:69:F0:2A:A4:52:B3
     SHA256: EA:8A:0A:0C:C6:4B:BE:73:57:78:CC:DC:08:DE:92:8E:04:6F:B8:3E:8F:2A:71:C8:AD:5A:E7:19:BB:31:7C:AE
Signaturalgorithmusname: SHA256withRSA
Public Key-Algorithmus von Subject: 2048-Bit-RSA-Schlüssel
Version: 3

Erweiterungen: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: EF C5 91 38 62 ED 54 12   4E AA 9C 0F C6 73 F2 0C  ...8b.T.N....s..
0010: 83 BF CA 5E                                        ...^
]
]
 

Комментарии:

1. Вы перезапустили механизм docker после обновления сертификатов на хосте?

2. Да, несколько раз.

3. Пожалуйста, включите команды, выполняемые и выводимые из этих команд, чтобы воспроизвести проблему. например, не просто говорите, что вы скопировали сертификат в папку или что wget работает, но покажите это.

4. пожалуйста, посмотрите, я обновил сообщение, wget был выполнен для порта 7575, потому что для порта 4563 я получаю 400 неверных запросов, и это нормально, потому что реестр nexus принимает только запросы докеров на этом порту, и в браузере то же самое, в нем говорится, что запрос не является запросом докера, и он отображает ошибку 400, но важно то, что, когда я отображаю сертификат на порту 4563 с помощью keytool, я его получаю. извините, моя машина на немецком языке

5. и это вывод входа в докер [mehdilapin@localhost ~]$ sudo вход в докер-u администратор mycustomregistry.com:4563 Пароль: Ответ на ошибку от демона: Получить mycustomregistry.com:4563/v2 : x509: сертификат, подписанный неизвестным органом

Ответ №1:

Сертификаты /etc/docker/certs.d/ должны быть отформатированы в формате x509 и иметь имя с расширением crt (на самом деле можно настроить параметры tls клиента в этой же папке). Так что переименуйте:

 /etc/docker/certs.d/mycustomregistry.com:4563/ca-certificate.cer
 

на сертификат в формате x509/pem с именем:

 /etc/docker/certs.d/mycustomregistry.com:4563/ca-certificate.crt
 

Это не объясняет, почему сертификаты операционной системы не работают. При проверке с помощью wget и curl вы сможете получить доступ к api v2, даже если он выдает ошибку «отказано в разрешении».:

 curl https://mycustomregistry.com:4563/v2/
 

Комментарии:

1. вчера я попытался сгенерировать сертификат формата .crt с помощью keytool и не работает сейчас я попробовал команду sudo openssl x509-сообщить der-in /etc/docker/certs.d/mycustomregistry.com:4563/ca-certificate.cer-out ca.crt, и это работает, действительно сложно управлять всеми этими типами форматов, для уровня ос это всегда работает, как я вам говорил, когда я подключаюсь к порту 4563, я получаю ошибку 400, а не ошибку сертификата, я пытался удалить сертификат из папка привязки, и вместо этого я получил ошибку неизвестного центра сертификации, большое вам спасибо.

2. @ben624 попадание в /v2/ конечную точку должно привести к ошибке 401, а не 400, или 200, если нет требуемой аутентификации. Спецификация API реестра описана здесь: docs.docker.com/registry/spec/api

3. Да, вы правы, я сделал это в /V2/ и получил 401, ранее я нажимал только на mycustomregistry.com:4563 без V2, v2 добавляется автоматически при использовании входа в докер, но с wget он не добавляется.