Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Server 2022 — Azure DevOps Server 2019
В этом разделе объясняется, как запустить самостоятельно размещенный агент с самозаверяющим сертификатом.
Примечание.
Эта статья относится к версиям агента 2.x и более поздним версиям.
Работа с ssl-сертификатом сервера
Enter server URL > https://corp.tfs.com/tfs
Enter authentication type (press enter for Integrated) >
Connecting to server ...
An error occurred while sending the request.
В журнале диагностики агента показано:
[2017-11-06 20:55:33Z ERR AgentServer] System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred
Эта ошибка может указывать на то, что сертификат сервера, используемый на сервере TFS, не является доверенным для машины сборки. Убедитесь, что вы устанавливаете самозаверяющий сертификат ssl-сервера в хранилище сертификатов ОС.
Windows: Windows certificate store
Linux: OpenSSL certificate store
macOS: OpenSSL certificate store for agent version 2.124.0 or below
Keychain for agent version 2.125.0 or above
Вы можете легко проверить правильность установки сертификата, выполнив несколько команд. Всё будет в порядке, пока рукопожатие SSL завершено правильно, даже если вы получите 401 для запроса.
Windows: PowerShell Invoke-WebRequest -Uri https://corp.tfs.com/tfs -UseDefaultCredentials
Linux: curl -v https://corp.tfs.com/tfs
macOS: curl -v https://corp.tfs.com/tfs (agent version 2.124.0 or below, curl needs to be built for OpenSSL)
curl -v https://corp.tfs.com/tfs (agent version 2.125.0 or above, curl needs to be built for Secure Transport)
Если вы каким-то образом не можете установить сертификат в хранилище сертификатов компьютера из-за различных причин, например: у вас нет разрешений или вы находитесь на настроенном компьютере Linux. Агент версии 2.125.0 или выше имеет возможность игнорировать ошибку проверки сертификата SSL-сервера.
Это важно
Это не безопасно и не рекомендуется, мы настоятельно рекомендуем установить сертификат в хранилище сертификатов компьютера.
Передайте --sslskipcertvalidation
при настройке агента
./config.cmd/sh --sslskipcertvalidation
Примечание.
Существует ограничение использования этого флага в Linux и macOS
Библиотека libcurl на компьютере Linux или macOS должна быть создана с помощью OpenSSL, дополнительные сведения
Ошибка загрузки исходных файлов Git связана с проблемой SSL-сертификата (только для агента Windows)
Мы отправляем командную строку Git в составе агента Windows. Мы используем эту копию Git для всех операций, связанных с Git. Если у вас есть самоподписанный SSL-сертификат для локального сервера TFS, обязательно настройте предоставленный нами Git, чтобы разрешить этот самоподписанный SSL-сертификат. Существует два подхода к решению проблемы.
Установите следующую конфигурацию Git на глобальном уровне от имени пользователя, под управлением которого работает агент.
git config --global http."https://tfs.com/".sslCAInfo certificate.pem
Примечание.
Настройка конфигурации Git уровня системы не является надежной в Windows. Файл `.gitconfig` системы хранится вместе с копией Git, которую мы упаковали, и он будет заменён всякий раз, когда агент обновляется до новой версии.
Позволить git использовать
SChannel
при конфигурировании с версией агента 2.129.0 или более поздней. Передать--gituseschannel
во время конфигурирования агента../config.cmd --gituseschannel
Примечание.
В Git SChannel предъявляются более строгие требования к вашему самозаверяющему сертификату. Самоподписанный сертификат, созданный с использованием IIS или команды PowerShell, может быть несовместим с SChannel.
Работа с SSL-сертификатом клиента
Служба IIS имеет параметр SSL, требующий, чтобы все входящие запросы к Azure DevOps Server или TFS содержали сертификат клиента в дополнение к обычным учетным данным.
Если включен параметр SSL IIS, необходимо использовать агент версии 2.125.0
или более поздней версии и выполнить следующие дополнительные действия, чтобы настроить компьютер сборки на сервере Azure DevOps или TFS.
Подготовка всех необходимых сведений о сертификате
- Сертификаты ЦС в формате
.pem
(это должно содержать открытый ключ и подпись сертификата ЦС, необходимо поместить сертификат корневого ЦС и все промежуточные сертификаты ЦС в один файл.pem
). - Сертификат клиента в формате
.pem
(он должен содержать открытый ключ и подпись сертификата клиента) - Закрытый ключ сертификата клиента в формате
.pem
(этот ключ должен содержать только закрытый ключ сертификата клиента). - Пакет архива сертификата клиента в формате
.pfx
(он должен содержать подпись, открытый ключ и закрытый ключ сертификата клиента). - Используйте пароль
SAME
для защиты закрытого ключа сертификата клиента и пакета архива сертификата клиента, так как у них есть закрытый ключ сертификата клиента.
- Сертификаты ЦС в формате
Установка сертификата(ов) центра сертификации в хранилище сертификатов компьютера
- Linux: хранилище сертификатов OpenSSL
- macOS: цепочка ключей системы или пользователя
- Windows: хранилище сертификатов Windows
Передайте
--sslcacert
,--sslclientcert
,--sslclientcertkey
.--sslclientcertarchive
и--sslclientcertpassword
во время настройки агента..\config.cmd/sh --sslcacert ca.pem --sslclientcert clientcert.pem --sslclientcertkey clientcert-key-pass.pem --sslclientcertarchive clientcert-archive.pfx --sslclientcertpassword "mypassword"
Пароль закрытого ключа сертификата клиента безопасно хранится на каждой платформе.
Linux: Encrypted with a symmetric key based on the machine ID macOS: macOS Keychain Windows: Windows Credential Store
Дополнительные сведения о поддержке сертификата клиента агента см. в.