Configurer HTTPS avec SSL (Secure Sockets Layer) pour Azure DevOps local

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

Vous pouvez renforcer la sécurité de votre déploiement de Azure DevOps Server en le configurant pour utiliser HTTPS (Hypertext Transfer Protocol Secure) avec SSL (Secure Sockets Layer). Vous pouvez soit exiger ce protocole pour maximiser la sécurité de votre déploiement, soit prendre en charge le protocole HTTPS avec SSL en plus du protocole HTTP par défaut. Si vous utilisez Release Management pour Visual Studio 2013, vous pouvez aussi le configurer pour utiliser HTTPS avec SSL. Toutefois, vous ne pouvez pas le configurer pour prendre en charge à la fois HTTP et HTTPS avec SSL.

Avant de choisir une configuration, passez en revue les avantages et les inconvénients décrits ici. Après avoir identifié la configuration qui correspond le mieux aux exigences de sécurité de votre organisation, suivez les étapes de cette rubrique pour configurer votre déploiement.

Dans cette rubrique

Avantages liés à la prise en charge du protocole S-HTTP avec SSL en plus d'HTTP

Si vous configurez votre déploiement de Azure DevOps Server pour prendre en charge les deux protocoles, les utilisateurs dont les ordinateurs ont été configurés pour HTTPS avec SSL se connectent à l’aide de ce protocole, ce qui rend votre déploiement plus sécurisé. Par ailleurs, les utilisateurs dont les ordinateurs sont configurés uniquement pour le protocole HTTP peuvent néanmoins se connecter à votre déploiement. Bien que vous ne deviez pas déployer cette configuration sur des réseaux publics, vous pouvez bénéficier des avantages suivants en continuant à prendre en charge les connexions HTTP dans un environnement réseau contrôlé :

  • Vous pouvez augmenter la sécurité de votre déploiement au fil du temps en configurant des ordinateurs clients pour S-HTTP avec SSL, si votre planning le permet. Si vous adoptez une approche synchronisée, vous n'avez pas besoin de mettre à niveau tous les ordinateurs en même temps et les utilisateurs dont les ordinateurs n'ont pas encore été mis à niveau peuvent continuer à se connecter au déploiement.

  • Vous pouvez plus facilement configurer et gérer Azure DevOps Server.

  • Les appels d'un service web à un autre sont plus rapides via HTTP que via S-HTTP avec SSL. Par conséquent, vous pouvez continuer à prendre en charge des connexions HTTP d'ordinateurs clients pour lesquels les exigences en matière de performances ont plus d'importance que les problèmes de sécurité.

Avantages liés à l'exigence du protocole S-HTTP avec SSL pour toutes les connexions

Le fait d'exiger S-HTTP avec SSL pour toutes les connexions vous offre les avantages suivants :

  • Toutes les connexions web entre la couche Application, la couche Données et la couche client pour Azure DevOps sont plus sécurisées, car elles nécessitent des certificats.

  • Vous pouvez contrôler plus facilement l'accès en configurant des certificats de manière à ce qu'ils expirent lorsqu'une phase de projet est supposée se terminer.

Inconvénients liés à la prise en charge ou à l'exigence du protocole S-HTTP avec SSL

Avant de configurer Azure DevOps Server pour prendre en charge ou exiger HTTPS avec SSL, vous devez tenir compte des inconvénients suivants :

  • Cela peut compliquer les tâches d'administration en cours. Par exemple, vous devrez peut-être reconfigurer votre déploiement pour ne plus prendre en charge S-HTTP avec SSL avant de pouvoir appliquer des Service Packs ou d'autres mises à jour.

  • Vous devez non seulement configurer, mais également gérer une autorité de certification et des approbations de certificats. Vous pouvez utiliser les services de certificat dans Windows Server 2003 et Windows Server 2008, mais vous ne souhaitez peut-être pas investir le temps et les ressources nécessaires pour déployer une infrastructure à clé publique sécurisée (PKI).

  • Vous devez consacrer beaucoup de temps à la configuration et au test de l'une ou l'autre de ces configurations. La résolution des problèmes liés à votre déploiement deviendra également plus difficile.

  • Si vous continuez à prendre en charge les deux protocoles, les connexions externes peuvent ne pas être chiffrées si la couche Application pour Azure DevOps n’est pas correctement sécurisée.

  • Si S-HTTP avec SSL est exigé, votre déploiement sera plus lent.

Configuration de votre déploiement pour prendre en charge ou exiger S-HTTP avec SSL

Les procédures de cette rubrique décrivent un processus de demande, d’émission et d’affectation de certificats requis pour les connexions SSL dans Azure DevOps Server. Si vous utilisez un logiciel différent de celui décrit dans cette rubrique, vous devrez peut-être exécuter des étapes différentes. Pour prendre en charge les connexions externes à votre déploiement Azure DevOps Server, vous devez également activer l’authentification de base, l’authentification Digest ou les deux dans Internet Information Services (IIS).

En suivant les procédures de cette rubrique, vous effectuerez les tâches suivantes :

  1. Obtenez des certificats pour votre déploiement de Azure DevOps Server et les sites web qu’il utilise.

  2. Installer et assigner les certificats.

  3. Configurez Azure DevOps Server.

  4. Configurez Team Foundation Build.

  5. Configurer Release Management pour Visual Studio 2013

  6. Configurer des ordinateurs clients.

Prérequis

Pour exécuter les procédures décrites dans cette rubrique, vous devez d'abord répondre aux conditions suivantes :

  • Les composants logiques dans les niveaux données et application d’Azure DevOps doivent être installés, bien que dans le cas de Azure DevOps Server lui-même, pas nécessairement configurés. Ces niveaux incluent IIS, SQL Server et tous les composants supplémentaires que vous avez pu intégrer, tels que Team Foundation Build et SQL Server Reporting Services.

    Les procédures de cette rubrique font référence au ou aux serveurs qui exécutent les composants logiques dans les niveaux application et données pour Azure DevOps. Les niveaux application et données peuvent s’exécuter sur le même serveur ou sur plusieurs serveurs, comme décrit dans Azure DevOps Server guide d’installation.

  • Vous devez disposer d'une autorité de certification à partir de laquelle vous pouvez émettre des certificats, ou être abonné à une autorité de certification tierce avec une chaîne approuvée. Cette rubrique suppose que vous utilisez des services de certificats en tant qu'autorité de certification, mais vous pouvez utiliser une autre autorité de certification configurée pour votre déploiement ou des certificats d'une autorité de certification tierce de confiance. Si vous ne disposez pas d'autorité de certification, vous pouvez installer les services de certificats et en configurer une. Pour plus d'informations, voir la documentation appropriée parmi les documentations disponibles sur le site web Microsoft :

  • Vous devez être administrateur pour configurer tous les composants de votre déploiement pour HTTPS et SSL. Si vous travaillez dans un déploiement distribué où différentes personnes disposent d’autorisations d’administration pour des composants individuels, vous devez vous coordonner avec ces personnes pour terminer la configuration.

  • Plus précisément, vous devez appartenir au groupe Administrateurs Team Foundation et au groupe Administrateurs de la couche Application, de la couche Données et du serveur proxy Azure DevOps ou des serveurs pour Team Foundation.

  • Pour configurer un serveur de build, vous devez appartenir au groupe Administrateurs sur ce serveur.

  • Pour configurer Release Management, vous devez appartenir au groupe Administrateurs sur le serveur qui héberge Release Management Server et être membre du rôle Release Manager dans Release Management.

  • Si votre déploiement utilise la création de rapports, vous devez être membre d'un groupe de sécurité administrateur ou disposer d'autorisations équivalentes définies individuellement pour configurer les services de création de rapports.

    Pour plus d’informations sur les autorisations, consultez Informations de référence sur les autorisations pour Azure DevOps Server.

Hypothèses

Les procédures de cette rubrique supposent que les conditions suivantes sont remplies :

  • Le ou les serveurs des couches Données et Application ont été installés et déployés dans un environnement sécurisé et configurés conformément aux meilleures pratiques en terme de sécurité.

  • Vous savez configurer et gérer les infrastructures à clé publique, ainsi que demander, émettre, et assigner des certificats.

  • Vous avez une connaissance pratique de la topologie réseau de l’environnement de développement et vous êtes familiarisé avec la configuration des paramètres réseau, IIS et SQL Server.

Obtention d'un certificat

Avant de configurer Azure DevOps Server pour utiliser HTTPS avec SSL, vous devez obtenir et installer un certificat de serveur pour les serveurs de votre déploiement. Pour obtenir un certificat de serveur, vous devez installer et configurer votre propre autorité de certification, ou utiliser une autorité de certification d'une organisation externe digne de confiance (certificats tiers).

Pour plus d'informations sur l'installation d'une autorité de certification, voir les rubriques suivantes sur le site web Microsoft :

Demander, installer et configurer des sites web avec un certificat

Après avoir souscrit à une autorité de certification, vous devez demander un certificat à l'aide du Gestionnaire des services IIS ou installer manuellement le certificat sur chacun des serveurs suivants dans votre déploiement :

  • Chaque serveur de couche Application.
  • Chaque serveur qui exécute le serveur proxy Azure DevOps, le cas échéant, est configuré pour votre déploiement.
  • Chaque serveur qui exécute Team Foundation Build Service en tant que contrôleur de build ou agent de build, le cas échéant, est configuré pour votre déploiement.
  • Le serveur qui exécute SQL Server Reporting Services, s'il est configuré pour votre déploiement.

En outre, les ordinateurs clients dans votre déploiement doivent être inscrits dans la chaîne de certificats et demander le certificat nécessaire. Si vous utilisez Release Management, sont inclus tous les ordinateurs exécutant le client Release Management, ainsi que tous les clients¹ exécutant l'agent de déploiement dans vos environnements de version. Si un ou plusieurs de vos projets utilisent Git pour le contrôle de version, les utilisateurs de ces projets devront également configurer Git sur leurs ordinateurs pour identifier et utiliser le certificat client. Pour savoir comment demander un certificat client à partir d'une autorité de certification spécifique, voir la documentation de cette autorité de certification.

¹ Les clients et les serveurs sont appelés séparément ici. Cette convention ne concerne que ce document. Le certificat doit être installé sur tout ordinateur exécutant l'agent de déploiement.

  1. Ouvrez Gestionnaire des services Internet (IIS) .

  2. Développez votre serveur, accédez à Certificats de serveur, puis créez et terminez votre demande de certificat.

    Ouvrez le Gestionnaire des services IIS et demandez un certificat

    Créez une demande, puis terminez-la

    Pour plus d’informations, consultez Configuration des certificats de serveur dans IIS.

  3. Importez le certificat.

  4. Vous devez à présent configurer chaque site web qui requiert ce certificat avec les paramètres appropriés (à l'exception du site web Release Management que vous configurerez plus tard). Vous devez notamment effectuer cela pour chacun des sites web suivants :

    • Site web par défaut
    • Azure DevOps Server
    • proxy Azure DevOps Server (si votre déploiement l’utilise)

    Sur chaque serveur qui héberge un site web que vous souhaitez configurer, ouvrez le Gestionnaire des services Internet (IIS).

  5. Développez ComputerName, développez Sites, ouvrez le sous-menu du site web que vous souhaitez configurer (par exemple, Azure DevOps Server), puis choisissez Liaisons dans le volet Actions.

    Vous devez configurer les liaisons pour tous les sites

  6. Dans Liaisons de site, choisissez Ajouter.

    La boîte de dialogue Ajouter la liaison de Site s'affiche.

  7. Dans la liste Type , choisissez https.

    Dans Port, tapez un autre numéro de port.

    Important

    Le numéro de port par défaut pour les connexions SSL est 443, mais vous devez attribuer un numéro de port unique pour chacun des sites suivants : Site web par défaut, Azure DevOps Server et proxy Azure DevOps Server (si votre déploiement l’utilise). Vous devez enregistrer le numéro de port SSL de chaque site web que vous configurez. Vous devez spécifier ces numéros dans la console d’administration pour Azure DevOps.

    Dans Certificat SSL, choisissez le certificat que vous avez importé, puis choisissez OK et fermez la page Liaisons.

    Assurez-vous de choisir un numéro de port unique

  8. Dans la page Accueil du site web que vous configurez, ouvrez la vue Fonctionnalités .

  9. Sous IIS, choisissez Authentification.

  10. Choisissez une méthode d'authentification à configurer, ouvrez son sous-menu, puis sélectionnez Activer, Désactiver ou Modifier pour activer, désactiver ou effectuer une configuration supplémentaire sur la méthode selon vos besoins en sécurité. Par exemple, si vous souhaitez désactiver l'authentification anonyme, vous devez choisir la méthode d'authentification anonyme et choisir Désactiver dans le menu Actions.

    Choisir la méthode, puis l'action à exécuter

  11. Une fois que vous avez terminé la configuration, redémarrez les services web.

Configuration de votre pare-feu

Vous devez configurer votre pare-feu pour autoriser le trafic via les ports SSL qui vous venez de spécifier dans IIS. Pour plus d'informations, voir la documentation de votre pare-feu.

Important

Veillez à tester le trafic sur le port que vous avez spécifié à partir d'un autre ordinateur. Si vous ne pouvez pas accéder au site web ou au portail web par défaut, double-case activée les paramètres de port que vous avez spécifiés pour ces sites web dans IIS, et assurez-vous que le pare-feu est configuré de manière appropriée pour autoriser le trafic sur ces ports.

Configuration de SQL Server Reporting Services

Si votre déploiement utilise la création de rapports, vous devez configurer SQL Server Reporting Services pour prendre en charge HTTPS avec SSL et utiliser le port que vous avez spécifié dans IIS pour Azure DevOps Server. Sinon, le serveur de rapports ne fonctionnera pas correctement pour votre déploiement. Pour plus d’informations, consultez Configuration d’un serveur de rapports pour les Connections SSL (Secure Sockets Layer).

Conseil

Si votre déploiement n'utilise pas la création de rapports, vous pouvez ignorer cette procédure.

Configuration de HTTPS pour Azure DevOps Server

Suivez ces étapes pour configurer votre déploiement Azure DevOps Server avec les ports et valeurs HTTPS que vous avez configurés dans IIS pour les sites web par défaut et Azure DevOps Server.

Pour reconfigurer Azure DevOps Server pour utiliser ou exiger HTTPS

  1. Ouvrez la console d’administration pour Azure DevOps et accédez au nœud de la couche Application.

  2. Dans Résumé de la couche Application, choisissez Modifier les URL.

    La fenêtre Modifier les URL s’ouvre.

  3. Dans URL de notification, tapez l’URL HTTPS que vous avez configurée pour le site web Azure DevOps Server dans IIS.

    Vous avez, par exemple, configuré le site web pour utiliser le port 444. Dans ce cas, vous tapez https:// ServerName :444/tfs. Vérifiez que vous utilisez le nom de domaine qualifié complet du serveur au lieu de localhost.

    Spécifier HTTPS, le serveur et le port dans l'adresse

  4. Choisissez Tester. Ne choisissez pas OK si le test n’est pas réussi. Revenez en arrière et vérifiez que vous avez entré l'URL et les informations sur les ports correctes, que tous les pare-feu sont configurés pour autoriser le trafic sur ces ports, et que le site est disponible et en cours d'exécution dans le Gestionnaire des services IIS.

  5. Pour exiger HTTPS, choisissez Utiliser dans l’URL du serveur, puis tapez l’URL HTTPS que vous avez configurée pour le site web Azure DevOps Server.

    Vérifiez que vous utilisez le nom de domaine qualifié complet du serveur au lieu de localhost.

  6. Choisissez Test, puis OK si le test réussit.

  7. Si votre déploiement utilise Reporting Services, dans la console d’administration, choisissez Création de rapports. Sinon, ignorez le reste de cette procédure.

  8. Dans Création de rapports, choisissez Modifier.

    Si la boîte de dialogue Mise hors connexion s’ouvre, choisissez OK.

    La fenêtre Création de rapports s’ouvre.

  9. Choisissez l’onglet Rapports . Dans URL du serveur de rapports, tapez les URL HTTPS pour le Service Web et le Gestionnaire de rapports, puis choisissez OK.

Tester l’accès à votre déploiement

Vous devez vérifier si vos modifications fonctionnent comme prévu. Cette étape est facultative, mais elle est fortement recommandée.

Pour tester l'accès à votre déploiement

  1. Sur un ordinateur qui n'héberge pas la couche Application, ouvrez un navigateur web et accédez à la page d'accueil de l'équipe.

  2. Vérifiez si vous pouvez accéder à vos équipes et projets à partir du portail web, y compris les pages d’administration.

  3. Si vous ne pouvez pas accéder à votre déploiement via le portail web, passez en revue les étapes que vous venez d’effectuer et vérifiez que vous avez effectué toutes les modifications de configuration correctement.

Configurer votre déploiement pour exiger HTTPS avec SSL (facultatif)

Vous pouvez exiger que toutes les connexions à la couche Application Azure DevOps Server utilisent HTTPS avec SSL. Cette sécurité supplémentaire est facultative, mais elle est recommandée.

Pour exiger des connexions SSL

  1. Sur le serveur qui héberge le site web que vous souhaitez configurer, choisissez Démarrer, Outils d’administration, puis Gestionnaire des services Internet (IIS).

  2. Suivez les étapes correspondant à votre version d'IIS :

    Pour les déploiements qui utilisent IIS 7.0 :

    1. Développez ComputerName, développez Sites web, puis choisissez le site web que vous souhaitez configurer.

    2. Dans la page d’accueil de ce site web, choisissez Paramètres SSL.

    3. Dans le volet Paramètres SSL, sélectionnez la zone Exiger l’case activée SSL.

      (Facultatif) Cochez la case Exiger le case activée SSL 128 bits.

    4. Dans Certificats clients, choisissez Ignorer, Accepter ou Exiger, en fonction des exigences de sécurité de votre déploiement.

    5. Dans Actions, choisissez Appliquer.

    6. Répétez ces étapes pour chaque site web pour lequel vous souhaitez exiger SSL.

Installation du certificat sur les serveurs de builds

Si vous avez installé Team Foundation Build Service sur un ou plusieurs serveurs, vous devez installer le certificat dans le magasin Autorités de certification racines de confiance de chaque serveur. Pour plus d’informations, consultez Obtention d’un certificat et Demande, installation et configuration de sites web avec un certificat plus haut dans cette rubrique. Le contrôleur et l'agent exigent tous deux un certificat comportant une clé privée avec laquelle ils s'identifient dans les connexions S-HTTP.

Notes

Pour exécuter des builds sur SSL, le certificat doit être installé dans le magasin racine approuvé sur le contrôleur de build et l'agent de build.

Mise à jour de configurations de build

Pour configurer Team Foundation Build pour les connexions SSL, vous devez configurer le service de build de manière à utiliser l’URL HTTPS que vous avez configurée pour la couche Application et le regroupement pris en charge par la configuration de build. Vous devez configurer cette URL pour chaque configuration de build de votre déploiement.

Pour modifier une configuration de build pour utiliser S-HTTP

  1. Sur le serveur qui héberge la configuration de build que vous souhaitez configurer, ouvrez la console d’administration pour Team Foundation.

  2. Sous Team Foundation, développez le nom du serveur, puis choisissez Build Configuration.

    Le volet Configuration de build s’affiche .

  3. Sous la configuration du service, choisissez Arrêter, puis Propriétés.

    La boîte de dialogue Générer les propriétés du service s’ouvre.

  4. Dans Communications, vérifiez que l’URL de la collection de projets utilise l’adresse HTTPS correcte et le nom complet du serveur.

  5. Dans Point de terminaison de service de build local (entrant), choisissez Modifier.

    La boîte de dialogue Générer un point de terminaison de service s’ouvre.

  6. Dans Détails du point de terminaison, vérifiez que le numéro de port correspond aux détails de votre configuration.

  7. Dans Protocole, choisissez HTTPS.

  8. Dans la liste Certificats SSL , choisissez le certificat que vous avez installé et configuré pour être utilisé avec ce déploiement, puis choisissez OK.

    S'assurer que les détails de configuration correspondent

  9. Dans la boîte de dialogue Propriétés du service de génération, choisissez Démarrer.

Configuration d'ordinateurs clients

Sur chaque ordinateur client à partir duquel les utilisateurs accèdent à Azure DevOps, vous devez installer le certificat localement et effacer le cache client pour tout utilisateur qui a accédé à Azure DevOps à partir de cet ordinateur. Sinon, les utilisateurs ne pourront pas se connecter à Azure DevOps à partir de cet ordinateur. Pour plus d’informations, consultez Gérer les certificats racines approuvés.

Important

Ne suivez pas cette procédure pour les ordinateurs qui exécutent à la fois Azure DevOps Server et un ou plusieurs clients d’Azure DevOps.

Pour installer le certificat sur un ordinateur client

  1. Connectez-vous à l’ordinateur à l’aide d’un compte qui appartient au groupe Administrateurs sur cet ordinateur.

  2. Installez le certificat dans le dossier Autorités de certification racines de confiance pour l'ordinateur local.

Pour effacer le cache sur un ordinateur client

  1. Ouvrez une session sur l'ordinateur à l'aide des informations d'identification de l'utilisateur dont vous souhaitez effacer le cache.

  2. Fermez toutes les instances ouvertes de Visual Studio.

  3. Dans une fenêtre du navigateur, ouvrez le dossier suivant :

    Drive :\Users\UserName\AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. Supprimez le contenu du répertoire Cache. Assurez-vous de supprimer tous les sous-dossiers.

  5. Choisissez Démarrer, exécuter, tapez devenv /resetuserdata, puis ok.

  6. Répétez ces étapes pour le compte de chaque utilisateur qui a accédé à Team Foundation à partir de cet ordinateur.

    Notes

    Vous pouvez distribuer des instructions pour effacer le cache à tous vos utilisateurs Azure DevOps afin qu’ils puissent effacer les caches pour eux-mêmes.

Pour connecter des ordinateurs clients au déploiement reconfiguré

Configuration de Git

Par défaut, les projets qui utilisent Git pour le contrôle de version ne parviennent pas à valider le certificat SSL que vous avez configuré pour Azure DevOps Server. En effet, contrairement à Azure DevOps Server et Visual Studio, Git ne reconnaît pas le magasin de certificats Windows. Au lieu de cela, il utilise OpenSSL pour le magasin de certificats. Pour utiliser un référentiel Git pour les projets configurés avec SSL, vous devez configurer Git avec le certificat à la racine de la certification pour votre déploiement de TFS 2013. Il s'agit d'une tâche de configuration client qui s'applique uniquement aux projets de référentiel Git.

Pour plus d’informations sur le fonctionnement des opérations réseau Git dans Visual Studio 2013, consultez ce billet de blog.

Conseil

Pour d’autres tâches de gestion des informations d’identification Git, telles que Authentification Windows, envisagez de télécharger et d’installer Windows Credential Store pour Git.

Pour configurer le magasin de certificats pour Git

  • Connectez-vous à l’ordinateur à l’aide d’un compte qui appartient au groupe Administrateurs sur cet ordinateur.

  • Vérifiez que le certificat requis a été installé et configuré sur l'ordinateur, conformément à ce qui est indiqué plus haut.

  • Dans votre navigateur web pris en charge, extrayez le certificat racine Azure DevOps Server en tant que fichier CER/PEM encodé en base 64.

  • Créez une copie privée du magasin de certificat racine Git et ajoutez-le à votre copie privée du magasin.