#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. Есть ли какие-либо обновления?