Docker Windows Composer Сертификат ZScaler SSL не прошел проверку - PullRequest
0 голосов
/ 29 апреля 2020

Я использую Docker Windows (linux контейнеры) на корпоративной коробке windows 10. Я работаю с Docker образом, основанным на Debian, и мой windows рабочий стол работает под управлением ZScaler.

Мне были предоставлены два файла сертификата (сертификат root и промежуточный сертификат), которые я установил поместив их в каталог / usr / local / share / ca-Certificates и выполнив команду «update-ca-Certificates», которая, по-видимому, устанавливает сертификаты.

Когда я пытаюсь запустить composer diag, я получить следующий вывод:

composer diag
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: [Composer\Downloader\TransportException] The "https://repo.packagist.org/packages.json" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Checking github.com rate limit: FAIL
[Composer\Downloader\TransportException] The "https://api.github.com/rate_limit" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: <Omitted
Dev Public Key Fingerprint: <Omitted
OK
Checking composer version:

  [Composer\Downloader\TransportException]
  The "https://getcomposer.org/versions" file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
  error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
  Failed to enable crypto
  failed to open stream: operation failed


diagnose

Может кто-нибудь помочь мне понять, как это работает?

1 Ответ

0 голосов
/ 29 апреля 2020

В моем случае сертификат root был установлен неправильно ... Сертификаты, предоставленные предприятием, имели имя .crt для промежуточного звена и .cer для сертификата root. update-ca-сертификаты не получают сертификат с именем .cer. Переименование сертификата root и повторный запуск update-ca-Certificates установили сертификат root и устранили проблему.

Выполнение следующей команды помогло выяснить проблему:

CONNECTED(00000003)
depth=2 DC = com, DC = my-enterprise, DC = ent, CN = ca-intermediate
verify error:num=2:unable to get issuer certificate
issuer= DC = pvt, DC = my-enterprise, CN = ca-rootauth
verify return:1
depth=1 C = US, ST = US, L = US, O = "my-enterprise ", OU = CTE, CN = my-enterprise.com
issuer= DC = com, DC = my-enterprise, DC = ent, CN = ca-intermediate
verify return:1
depth=0 C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = *.github.com
issuer= C = US, ST = US, L = US, O = "my-enterprise ", OU = CTE, CN = my-enterprise.com
verify return:1
---
Certificate chain
0 s:C = US, ST = California, L = San Francisco, O = "GitHub, Inc.", CN = *.github.com
   i:C = US, ST = US, L = US, O = "my-enterprise ", OU = CTE, CN = my-enterprise.com

Это показало, что сертификат root не был признан действительным центром сертификации и привел меня к перечислению сертификатов, признанных openssl. Я нашел ответ на этот вопрос здесь: https://unix.stackexchange.com/questions/97244/list-all-available-ssl-ca-certificates

как только я перечислил и проверил, что ca-rootauth не существует в списке доверенных лиц CA, тогда нужно было просто выяснить, почему два (root и промежуточный) работают по-разному ...

...