Настройка HTTPS с протоколом SSL для Локальной службы Azure DevOps

Azure DevOps Server 2022 г. | Azure DevOps Server 2020 г. | Azure DevOps Server 2019 г.

Вы можете повысить безопасность развертывания Azure DevOps Server, настроив его для использования протокола HTTPS с протоколом SSL. Можно настроить требование этого протокола, чтобы обеспечить максимальную безопасность развертывания, или поддержку HTTPS с SSL в дополнение к протоколу по умолчанию, HTTP. При использовании Release Management для Visual Studio 2013 этот компонент также можно настроить для использования HTTPS с SSL, однако конфигурация с поддержкой HTTP и HTTPS с SSL для него недоступна.

Перед выбором конфигурации изучите преимущества и недостатки, описанные ниже. Определив конфигурацию, максимально соответствующую потребностям организации в области безопасности, выполните описанные в данном разделе шаги по настройке развертывания.

В этом разделе

Преимущества поддержки HTTPS с SSL в дополнение к HTTP

Если вы настроите развертывание Azure DevOps Server для поддержки обоих протоколов, пользователи, на компьютерах которых настроен протокол HTTPS с SSL, будут подключаться по этому протоколу, что делает развертывание более безопасным. Кроме того, пользователи, чьи компьютеры настроены на поддержку только протокола HTTP, по-прежнему могут подключаться к развернутой системе. Хотя подобная конфигурация не подходит для общедоступных сетей, продолжая поддерживать HTTP-подключения в контролируемой сетевой среде, вы получаете следующие преимущества:

  • Со временем можно повысить безопасность развертывания, настраивая клиентские компьютеры на поддержку HTTPS с SSL в удобном темпе. Поэтапный подход устраняет необходимость одновременного обновления всех компьютеров, а пользователи, чьи компьютеры еще не были обновлены, могут по-прежнему подключаться к развернутой системе.

  • Вы можете упростить настройку и обслуживание Azure DevOps Server.

  • Вызовы одной веб-службы другой быстрее пересылаются по протоколу HTTP, чем по протоколу HTTPS с SSL. Следовательно, на клиентских компьютерах, на которых производительность важнее безопасности, можно продолжать поддерживать подключения HTTP.

Преимущества требования HTTPS с SSL для всех подключений

Требование протокола HTTPS с SSL для всех подключений обеспечивает следующие преимущества:

  • Все веб-подключения между уровнем приложений, уровнем данных и уровнем клиента для Azure DevOps являются более безопасными, так как для них требуются сертификаты.

  • Этот подход облегчает контроль доступа, потому что можно настроить истечение срока действия сертификатов в соответствии с ожидаемой датой окончания фазы проекта.

Недостатки поддержки или требования HTTPS с SSL

Перед настройкой Azure DevOps Server для поддержки или требования ПРОТОКОЛА HTTPS с SSL следует учитывать следующие недостатки:

  • Возможно, усложнятся текущие административные задачи. Например, возможно, придется изменить конфигурацию развернутой системы, прекратив поддержку HTTPS с SSL перед применением пакетов обновлений или других обновлений.

  • Необходимо не только настраивать центры сертификации и доверия сертификатов, но и управлять ими. Службы сертификатов можно использовать в Windows Server 2003 и Windows Server 2008, но вы можете не тратить время и ресурсы, необходимые для развертывания инфраструктуры безопасных открытых ключей (PKI).

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

  • Если вы продолжите поддерживать оба протокола, внешние подключения могут быть не зашифрованы, если уровень приложений для Azure DevOps не защищен должным образом.

  • Требование HTTPS с SSL ухудшает производительность развертывания.

Настройка развертывания для поддержки или требования HTTPS с SSL (необязательно)

Процедуры в этом разделе описывают один процесс запроса, выдачи и назначения сертификатов, необходимых для SSL-подключений в Azure DevOps Server. Если используются отличные от описанных в данном разделе решения, возможно, потребуется выполнить другие шаги. Для поддержки внешних подключений к развертыванию Azure DevOps Server необходимо также включить обычную проверку подлинности, дайджест-проверку подлинности или обе эти функции в службах IIS.

В данном разделе приводятся инструкции по решению следующих задач:

  1. Получите сертификаты для развертывания Azure DevOps Server и веб-сайтов, которые он использует.

  2. Установка и назначение сертификатов.

  3. Настройка Azure DevOps Server.

  4. Настройте сборку Team Foundation.

  5. Настройка Release Management для Visual Studio 2013

  6. Настройка клиентских компьютеров.

Предварительные требования

Для выполнения описанных в этом разделе процедур необходимо удовлетворить следующие требования:

  • Необходимо установить логические компоненты на уровнях данных и приложений Azure DevOps, хотя в случае Azure DevOps Server себя не обязательно настраивать. К этим уровням относятся IIS, SQL Server и любые дополнительные компоненты, которые вы могли интегрировать, например Team Foundation Build и SQL Server Reporting Services.

    Процедуры в этом разделе относятся к серверу или серверам, на которых выполняются логические компоненты на уровнях приложений и данных для Azure DevOps. Уровни приложений и данных могут работать на одном или нескольких серверах, как описано в руководстве по установке Azure DevOps Server.

  • Необходимо наличие центра сертификации (CA), который может выдавать сертификаты, или подписки на сторонний центр сертификации в цепи доверия. В данном разделе имеется в виду, что в качестве центра сертификации используются службы сертификации, но на практике можно использовать любой центр сертификации, настроенный для имеющегося развертывания, а также сертификаты, выданные доверенным сторонним центром сертификации. При отсутствии центра сертификации можно установить и настроить службы сертификации. Дополнительные сведения см. в одном из следующих документов на веб-сайте Майкрософт:

  • Чтобы настраивать поддержку HTTPS и SSL во всех компонентах развертывания, необходимо быть администратором. Если вы работаете в распределенном развертывании, где разные пользователи имеют административные разрешения для отдельных компонентов, необходимо координировать работу с этими пользователями, чтобы завершить настройку.

  • В частности, вы должны принадлежать группе администраторов Team Foundation и группе администраторов на уровне приложений, уровне данных и прокси-сервере Azure DevOps или серверах для Team Foundation.

  • Чтобы настроить сервер сборки, необходимо принадлежать к группе Администраторы на этом сервере.

  • Чтобы настроить Release Management, необходимо принадлежать к группе Администраторы на сервере, на котором размещается Release Management Server, и быть членом роли диспетчера выпусков в Release Management.

  • Если в развертывании используются отчеты, необходимо быть членом группы безопасности администрирования или иметь эквивалентные разрешения, отдельно заданные для настройки служб отчетов.

    Дополнительные сведения о разрешениях см. в справочнике по разрешениям для Azure DevOps Server.

Предположения

Процедуры в данном разделе описаны исходя из того, что соблюдаются следующие условия:

  • Сервер или серверы уровня данных и уровня приложений установлены и развернуты в безопасной среде и настроены в соответствии с рекомендациями безопасности.

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

  • У вас есть опыт работы с топологией сети среды разработки, а также вы знакомы с настройкой параметров сети, СЛУЖБ IIS и SQL Server.

Получение сертификата

Перед настройкой Azure DevOps Server для использования HTTPS с SSL необходимо получить и установить сертификат сервера для серверов в развертывании. Чтобы получить сертификат сервера, необходимо установить и настроить собственный центр сертификации или использовать центр сертификации из доверенной внешней организации (сторонние сертификаты).

Дополнительные сведения об установке центра сертификации см. в следующих разделах на веб-сайте Майкрософт:

Запрос, установка и настройка веб-сайтов с использованием сертификата

После регистрации в списке центра сертификации необходимо либо запросить сертификат с помощью диспетчера служб IIS, либо вручную установить сертификат на каждом из следующих серверов развертывания:

  • Каждый сервер уровня приложений.
  • Для развертывания настроен каждый сервер, на котором выполняется прокси-сервер Azure DevOps ( если таковой имеется).
  • Каждый сервер, на котором выполняется служба сборки Team Foundation в качестве контроллера сборки или агента сборки, если таковой имеется, настроен для развертывания.
  • Сервер под управлением служб отчетов, если таковой настроен для развертывания.

Кроме того, клиентских компьютерах в развертывании должна быть зарегистрированы в цепи сертификатов и запрашивать необходимый сертификат. Если используется Release Management, к ним относятся все компьютеры, на которых выполняется клиент Release Management, а также все компьютеры¹ в средах выпуска, на который выполняется агент развертывания. Если один или несколько проектов используют Git в качестве системы управления версиями, то пользователи в этих проектах также должны настроить Git на своих компьютерах для распознавания и использовать сертификата клиента. Сведения о том, как запросить сертификат клиента в указанном центре сертификации, см. в документации этого центра сертификации.

¹ Клиенты и серверы здесь называются отдельно, но это всего лишь соглашение этого документа. На всех компьютерах, на которых выполняется агент развертывания, должны быть установлены сертификаты.

  1. Откройте диспетчер служб IIS.

  2. Разверните сервер, перейдите в раздел Сертификаты сервера, создайте и выполните запрос на сертификат.

    Откройте диспетчер IIS и запросите сертификат

    Создание запроса и последующее выполнение его

    Дополнительные сведения см. в разделе Настройка сертификатов сервера в СЛУЖБАх IIS.

  3. Импортируйте сертификат.

  4. Теперь необходимо настроить соответствующие параметры для каждого веб-сайта, который требует наличия этого сертификата (за исключением веб-сайта Release Management, который вы настроите позже). В частности это необходимо сделать для каждого из следующих веб-сайтов.

    • Веб-сайт по умолчанию
    • Azure DevOps Server
    • прокси-сервер Azure DevOps Server (если он используется в развертывании)

    На каждом сервере, на котором размещается веб-сайт, который требуется настроить, откройте диспетчер служб IIS.

  5. Разверните узел ComputerName, узел Сайты, откройте подменю веб-сайта, который нужно настроить (например, Azure DevOps Server), а затем выберите Привязки в области Действия.

    Необходимо настроить привязки для всех сайтов

  6. В разделе Привязки сайтов нажмите кнопку Добавить.

    Откроется диалоговое окно Добавление привязки сайта.

  7. В списке Тип выберите https.

    В поле Порт введите другой номер порта.

    Важно!

    Номер порта по умолчанию для SSL-подключений — 443, но необходимо назначить уникальный номер порта для каждого из следующих сайтов: веб-сайт по умолчанию, Azure DevOps Server и прокси-сервер Azure DevOps Server (если это используется в развертывании). Для каждого настраиваемого веб-сайта необходимо записать номер порта SSL. Эти номера необходимо указать в консоли администрирования для Azure DevOps.

    В разделе SSL-сертификат выберите импортированный сертификат, а затем нажмите кнопку ОК и закройте страницу Привязки.

    Обеспечьте выбор уникального номера порта

  8. На домашней странице настраиваемого веб-сайта откройте представление Функции .

  9. В разделе IIS выберите Проверка подлинности.

  10. Выберите метод аутентификации, который требуется настроить, откройте его меню, а затем включите, отключите или выполните дополнительную настройку метода в соответствии со своими требованиями к безопасности. Например, если требуется отключить анонимную аутентификацию, выберите метод «Анонимная аутентификация» и в меню действий выберите команду «Отключить».

    Выберите метод, а затем выполняемое действие

  11. После завершения настройки перезапустите веб-службы.

Настройка брандмауэра

Необходимо настроить брандмауэр так, чтобы разрешить прохождение трафика через только что заданные в IIS порты SSL. Дополнительные сведения см. в документации вашего брандмауэра.

Важно!

Не забудьте протестировать трафик через порты, настроенные с другого компьютера. Если вы не можете получить доступ к веб-сайту или веб-порталу по умолчанию, дважды проверка параметры порта, указанные для этих веб-сайтов в IIS, и убедитесь, что брандмауэр настроен соответствующим образом, чтобы разрешить трафик через эти порты.

Настройка службы отчетов SQL Server

Если в развертывании используются отчеты, необходимо настроить SQL Server Reporting Services для поддержки HTTPS с SSL и использовать порт, указанный в IIS, для Azure DevOps Server. В противном случае сервер отчетов не будет работать в развертывании надлежащим образом. Дополнительные сведения см. в статье Настройка сервера отчетов для Connections SSL.

Совет

Если отчеты в развертывании не используются, эту процедуру можно пропустить.

Настройка HTTPS для Azure DevOps Server

Выполните следующие действия, чтобы настроить развертывание Azure DevOps Server с помощью портов HTTPS и значений, настроенных в IIS для веб-сайтов по умолчанию и Azure DevOps Server.

Перенастройка Azure DevOps Server для использования или требования ПРОТОКОЛА HTTPS

  1. Откройте консоль администрирования для Azure DevOps и перейдите к узлу уровня приложений.

  2. В разделе Сводка уровня приложений выберите Изменить URL-адреса.

    Откроется окно Изменение URL-адресов .

  3. В поле URL-адрес уведомления введите URL-адрес HTTPS, настроенный для веб-сайта Azure DevOps Server в IIS.

    Например, веб-сайт был настроен на использование порта 444. В этом случае введите https:// ServerName:444/tfs. Убедитесь, что вместо имени localhost используется полное доменное имя сервера.

    Укажите в адресе HTTPS, сервер и порт

  4. Выберите Тест. Не выбирайте ОК , если тест не пройден. Вернитесь и убедитесь, что указаны правильные URL-адреса и порты, что все межсетевые экраны пропускают трафик через эти порты и что сайт доступен и на нем запущен диспетчере IIS.

  5. Чтобы требовать httpS, выберите Использовать в URL-адресе сервера, а затем введите URL-адрес HTTPS, настроенный для веб-сайта Azure DevOps Server.

    Убедитесь, что вместо имени localhost используется полное доменное имя сервера.

  6. Выберите Тест, а затем нажмите кнопку ОК , если тест пройден.

  7. Если в развертывании используется Reporting Services, в консоли администрирования выберите Отчеты. В противном пропустите оставшуюся часть этой процедуры.

  8. В разделе Отчеты выберите Изменить.

    Если откроется диалоговое окно Отключить , нажмите кнопку ОК.

    Откроется окно Отчеты .

  9. Перейдите на вкладку Отчеты . В поле URL-адреса сервера отчетов введите URL-адреса HTTPS для веб-службы и диспетчера отчетов, а затем нажмите кнопку ОК.

Проверка доступа к развертыванию

Необходимо проверить, функционируют ли внесенные изменения надлежащим образом. Данный шаг не является обязательным, но его рекомендуется выполнить.

Проверка доступа к развертыванию

  1. На компьютере, на котором не размещено приложение, откройте веб-браузер и перейдите на домашнюю страницу команды.

  2. Проверьте, можете ли вы получить доступ к командам и проектам с веб-портала, включая страницы администрирования.

  3. Если вы не можете получить доступ к развертыванию через веб-портал, просмотрите только что выполненные действия и убедитесь, что все изменения конфигурации внесены правильно.

Настройка развертывания для требования ПРОТОКОЛА HTTPS с SSL (необязательно)

Вы можете потребовать, чтобы все подключения к уровню приложений Azure DevOps Server использовали HTTPS с SSL. Рекомендуется принять эту дополнительную меру обеспечения безопасности, однако она не является обязательной.

Требование подключений SSL

  1. На сервере, на котором размещается веб-сайт, который вы хотите настроить, нажмите кнопку Пуск, выберите Администрирование, а затем — Диспетчер служб IIS.

  2. Выполните следующие шаги в зависимости от используемой версии IIS:

    Для развертываний с использованием IIS 7.0:

    1. Разверните узел ComputerName, веб-сайты, а затем выберите веб-сайт, который требуется настроить.

    2. На домашней странице этого веб-сайта выберите Параметры SSL.

    3. В области Параметры SSL установите флажок Требовать проверка SSL.

      (Необязательно) Установите флажок Требовать 128-разрядную проверка SSL.

    4. В разделе Сертификаты клиента выберите Игнорировать, Принять или Требовать в зависимости от требований к безопасности развертывания.

    5. В разделе Действия нажмите кнопку Применить.

    6. Повторите эти шаги для каждого веб-сайта, для которого необходимо требовать SSL.

Установка сертификата на серверах построения

Если вы установили Team Foundation Build Service на одном или нескольких серверах, необходимо установить сертификат в хранилище доверенных корневых центров сертификации каждого сервера. Дополнительные сведения см. в разделах Получение сертификата и Запрос, установка и настройка веб-сайтов с сертификатом ранее в этой статье. И контроллер, и агент требуют сертификат с закрытым ключом, с которым они могли бы идентифицироваться в HTTPS-подключениях.

Примечание

Чтобы выполнять построения с использованием протокола SSL, сертификат должен быть установлен в доверенном корневом хранилище в контроллере построений и агенте построения.

Обновление конфигураций построения

Чтобы настроить сборку Team Foundation для SSL-подключений, необходимо настроить службу сборки на использование URL-адреса HTTPS, настроенного для уровня приложения, и коллекции, которую поддерживает конфигурация сборки. Необходимо настроить данный URL-адрес для каждой конфигурации построения в развертывании.

Изменение конфигурации построения для использования HTTPS

  1. На сервере, на котором размещена конфигурация сборки, которую вы хотите настроить, откройте консоль администрирования Team Foundation.

  2. В разделе Team Foundation разверните имя сервера и выберите Конфигурация сборки.

    Откроется панель Конфигурация сборки .

  3. В конфигурации службы нажмите кнопку Остановить, а затем выберите Свойства.

    Откроется диалоговое окно Свойства службы сборки .

  4. В разделе Коммуникации убедитесь, что в URL-адресе коллекции проектов используется правильный HTTPS-адрес и полное имя сервера.

  5. В разделе Локальная конечная точка службы сборки (входящие) выберите Изменить.

    Откроется диалоговое окно Сборка конечной точки службы .

  6. В разделе Сведения о конечной точке убедитесь, что номер порта соответствует сведениям о конфигурации.

  7. В поле Протокол выберите HTTPS.

  8. В списке SSL-сертификаты выберите сертификат, который вы установили и настроили для использования в этом развертывании, а затем нажмите кнопку ОК.

    Убедитесь, что данные конфигураций совпадают

  9. В диалоговом окне Свойства службы сборки нажмите кнопку Пуск.

Настройка клиентских компьютеров

На каждом клиентском компьютере, с которого пользователи получают доступ к Azure DevOps, необходимо установить сертификат локально и очистить кэш клиента для любого пользователя, который получил доступ к Azure DevOps с этого компьютера. В противном случае пользователи не смогут подключаться к Azure DevOps с этого компьютера. Дополнительные сведения см. в разделе Управление доверенными корневыми сертификатами.

Важно!

Не выполняйте эту процедуру для компьютеров под управлением Azure DevOps Server и одного или нескольких клиентов Azure DevOps.

Установка сертификата на клиентском компьютере

  1. Войдите на компьютер с помощью учетной записи, которая принадлежит группе администраторов на этом компьютере.

  2. Установите сертификат в папку «Доверенный корневой центр сертификации» на локальном компьютере.

Очистка кэша на клиентском компьютере

  1. Войдите на компьютер, используя учетные данные пользователя, для которого необходимо выполнить очистку кэша.

  2. Закройте все открытые экземпляры Visual Studio.

  3. В окне браузера откройте следующую папку:

    Диск:\Users\UserName\AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. Удалите содержимое каталога кэша. Убедитесь, что удалены все вложенные папки.

  5. Нажмите кнопку Пуск, выберите Выполнить, введите devenv /resetuserdata, а затем нажмите кнопку ОК.

  6. Повторите эти действия для учетной записи каждого пользователя, который получил доступ к Team Foundation с этого компьютера.

    Примечание

    Вы можете распространить инструкции по очистке кэша для всех пользователей Azure DevOps, чтобы они могли очистить кэши самостоятельно.

Подключение клиентских компьютеров к развертыванию с измененными настройками

Настройка Git

По умолчанию проекты, использующие Git для управления версиями, не смогут проверить SSL-сертификат, настроенный для Azure DevOps Server. Это связано с тем, что в отличие от Azure DevOps Server и Visual Studio, Git не распознает хранилище сертификатов Windows. Вместо этого данная система использует OpenSSL для своего хранилища сертификатов. Для использования репозитория Git для проектов, настроенных с SSL, необходимо настроить Git с сертификатом в корне цепочки сертификации развертывания TFS 2013. Это задача настройки клиента, которая применяется только к проектам репозитория Git.

Дополнительные сведения о работе сетевых операций Git в Visual Studio 2013 см. в этой записи блога.

Совет

Для других задач управления учетными данными Git, таких как проверка подлинности Windows, рассмотрите возможность скачивания и установки хранилища учетных данных Windows для Git.

Настройка хранилища сертификатов для Git

  • Войдите на компьютер с помощью учетной записи, которая принадлежит группе администраторов на этом компьютере.

  • Убедитесь, что необходимый сертификат был установлен и настроен на компьютере, как было описано выше.

  • В поддерживаемом веб-браузере извлеките корневой сертификат Azure DevOps Server как файл CER/PEM в кодировке Base64.

  • Создайте частную копию хранилища корневых сертификатов Git и добавьте в нее извлеченный сертификат.