Настройка HTTPS с помощью протокола SSL для локальной среды Azure DevOps

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Вы можете укрепить безопасность развертывания Сервера Azure DevOps, настроив его для использования протокола hypertext Transfer Protocol Secure (HTTPS) с протоколом SSL. Этот протокол можно выбрать, чтобы обеспечить максимальную безопасность развертывания, или вы можете использовать протокол HTTPS с ssl в дополнение к протоколу ПО умолчанию HTTPS. Если вы используете 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 (IIS).

Выполнив следующие процедуры в этом разделе, выполните следующие задачи:

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

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

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

  4. Настройка Team Foundation Build.

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

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

Необходимые компоненты

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Вы знакомы с настройкой PKIs и управлением ими и запросами, выдачой и назначением сертификатов.

  • У вас есть рабочие знания о топологии сети среды разработки, и вы знакомы с настройкой параметров сети, IIS и SQL Server.

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

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

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

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

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

  • Каждый сервер уровня приложения.
  • Каждый сервер, на котором выполняется прокси-сервер Azure DevOps, если он настроен для развертывания.
  • Каждый сервер, работающий под управлением Team Foundation Build Service в качестве контроллера сборки или агента сборки, если он настроен для развертывания.
  • Сервер, на котором запущены службы Reporting Services, если он настроен для развертывания.

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

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

  1. Откройте Диспетчер Internet Information Services (IIS).

  2. Разверните сервер, перейдите к сертификатам сервера и создайте и завершите запрос на сертификат.

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

    Создайте запрос, а затем завершите его

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

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

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

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

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

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

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

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

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

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

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

    Внимание

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

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

    Обязательно выберите уникальный номер порта

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

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

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

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

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

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

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

Внимание

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

Настройка служб SQL Server Reporting Services

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

Совет

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

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

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

Перенастройка Сервера Azure DevOps для использования или требования HTTPS

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

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

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

  3. Введите 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 (необязательно)

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

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

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

  2. Выполните необходимые действия для вашей версии IIS:

    Для развертываний, использующих IIS 7.0:

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

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

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

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

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

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

    6. Повторите эти действия для каждого веб-сайта, для которого требуется SSL.

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

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

Примечание.

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

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

Чтобы настроить Team Foundation Build для 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, так и на одном или нескольких клиентах 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 в виде файла X.509 CER/PEM в кодировке Base64.

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