Ошибки SSL при настройке агента docker на сервере Azure Devops на сервере Azure Devops

#docker #ssl #azure-devops

#docker #ssl #azure-devops

Вопрос:

Я пытаюсь настроить проверенную концепцию серверной среды Azure Devops, включая самостоятельный агент Docker на Ubuntu 20.04.5 LTS, следуя документации здесь . Когда я пытаюсь запустить контейнер с помощью этой команды, он завершается ошибкой SSL из curl:

 myuser@ubuntu20-04dockertest:~$ sudo docker run -e AZP_URL=https://win-k58ocndvak6/DefaultCollection -e AZP_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXX -e AZP_AGENT_NAME=scs-docker-agent dockeragent:latest
[sudo] password for myuser: 
1. Determining matching Azure Pipelines agent...
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
  

Я пробовал использовать самозаверяющий сертификат в привязках Azure Devops Server IIS, а также путем установки служб сертификатов Active Directory и настройки сервера Azure Devops Server в качестве автономного корневого центра сертификации, выдачи сертификата и применения к нему привязок Azure Devops Server IIS. Как самозаверяющий сертификат, так и сертификат CA были импортированы в хранилище доверенных сертификатов компьютеров Ubuntu. Ни одна из этих конфигураций не работает, но запуск curl для URL-адреса сервера Azure Devops кажется нормальным:

 myuser@ubuntu20-04dockertest:~$ curl -v https://win-k58ocndvak6/DefaultCollection
*   Trying 192.168.122.204:443...
* TCP_NODELAY set
* Connected to win-k58ocndvak6 (192.168.122.204) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384
* ALPN, server accepted to use h2
* Server certificate:
*  subject: C=AU; ST=WA; L=Perth; O=WIN-K58OCNDVAK6; OU=SCS-DEV; CN=WIN-K58OCNDVAK6
*  start date: Sep 24 08:06:11 2020 GMT
*  expire date: Sep 24 08:16:11 2021 GMT
*  common name: WIN-K58OCNDVAK6 (matched)
*  issuer: CN=WIN-K58OCNDVAK6-CA-1
*  SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55d60c17ddb0)
> GET /DefaultCollection HTTP/2
> Host: win-k58ocndvak6
> user-agent: curl/7.68.0
> accept: */*
  

Кто-нибудь знает, что здесь происходит?

Также было бы неплохо заставить команду «docker run» не заботиться о SSL, это просто проверка концепции настройки разработчика.

Спасибо 🙂

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

1. Как насчет выполнения команды sudo update-ca-certificates раньше docker run ?

2. Есть ли какие-либо обновления?