Configurer HTTPS avec SSL (Secure Sockets Layer) pour Azure DevOps en local
Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019
Vous pouvez renforcer la sécurité de votre déploiement d’Azure DevOps Server en le configurant pour utiliser https (Hypertext Transfer Protocol Secure) avec SSL (Secure Sockets Layer). Vous pouvez choisir d’exiger ce protocole, qui optimise la sécurité de votre déploiement, ou vous pouvez choisir de prendre en charge HTTPS avec SSL en plus du protocole HTTP par défaut. Si vous utilisez Release Management pour Visual Studio 2013, vous pouvez également le configurer pour utiliser HTTPS avec SSL, bien que vous ne puissiez pas le configurer pour prendre en charge 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 répond le mieux aux besoins de sécurité de votre organisation, suivez les étapes décrites dans cette rubrique pour configurer votre déploiement.
Dans cette rubrique
Informations conceptuelles
Configurer le serveur
Tâches de configuration facultatives
Configuration de build
Configuration de client
Configuration du référentiel Git
Avantages de la prise en charge du protocole HTTPS avec SSL en plus de HTTP
Si vous configurez votre déploiement d’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é. En outre, les utilisateurs dont les ordinateurs sont configurés pour HTTP peuvent toujours 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 HTTPS avec SSL au fur et à mesure que votre planification le permet. Si vous effectuez une approche par phases, 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 toujours se connecter au déploiement.
Vous pouvez configurer et gérer plus facilement Azure DevOps Server.
Les appels d’un service web à un autre sont plus rapides via HTTP que via HTTPS avec SSL. Par conséquent, vous pouvez continuer à prendre en charge les connexions HTTP à partir d’ordinateurs clients pour lesquels les exigences de performances dépassent les risques de sécurité.
Avantages de l’utilisation de HTTPS avec SSL pour toutes les connexions
Si vous avez besoin de HTTPS avec SSL pour toutes les connexions, vous bénéficiez des avantages suivants :
Toutes les connexions web entre la couche Application, la couche Données et le niveau 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 pour expirer lorsqu’une phase de projet est censée se terminer.
Inconvénients de la prise en charge ou de l’utilisation de HTTPS avec SSL
Avant de configurer Azure DevOps Server pour prendre en charge ou exiger HTTPS avec SSL, vous devez prendre en compte les inconvénients suivants :
Vous risquez de compliquer les tâches d’administration en cours. Par exemple, vous devrez peut-être reconfigurer votre déploiement pour arrêter la prise en charge du protocole HTTPS 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 (CA) et des approbations de certificat. Vous pouvez utiliser les services de certificats dans Windows Server 2003 et Windows Server 2008, mais vous ne souhaiterez peut-être pas investir le temps et les ressources nécessaires au déploiement d’une infrastructure à clé publique sécurisée (PKI).
Vous devez consacrer beaucoup de temps à configurer et tester l’une de ces configurations, et la résolution des problèmes de votre déploiement devient 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 vous avez besoin de HTTPS avec SSL, les performances de votre déploiement seront plus lentes.
Configuration de votre déploiement pour prendre en charge ou exiger HTTPS avec SSL
Les procédures décrites dans cette rubrique décrivent un processus pour demander, émettre et affecter des certificats requis pour les connexions SSL dans Azure DevOps Server. Si vous utilisez des logiciels différents de ce que décrit cette rubrique, vous devrez peut-être effectuer différentes étapes. 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 décrites dans cette rubrique, vous allez effectuer les tâches suivantes :
Obtenez des certificats pour votre déploiement d’Azure DevOps Server et des sites web qu’il utilise.
Installez et affectez les certificats.
Configurez Azure DevOps Server.
Configurez Team Foundation Build.
Configurer Release Management pour Visual Studio 2013
Configurer des ordinateurs clients.
Prérequis
Pour effectuer les procédures décrites dans cette rubrique, vous devez d’abord répondre aux exigences suivantes :
Les composants logiques des niveaux de données et d’application d’Azure DevOps doivent être installés, bien que dans le cas d’Azure DevOps Server lui-même, ne soient pas nécessairement configurés. Ces niveaux incluent IIS, SQL Server et tous les composants supplémentaires que vous avez peut-être intégrés, tels que Team Foundation Build et SQL Server Reporting Services.
Les procédures de cette rubrique font référence au serveur ou aux serveurs qui exécutent les composants logiques dans les niveaux d’application et de données pour Azure DevOps. Les niveaux d’application et de données peuvent s’exécuter sur le même serveur ou sur plusieurs serveurs, comme décrit dans le guide d’installation d’Azure DevOps Server.
Vous devez disposer d’une autorité de certification (CA) à partir de laquelle vous pouvez émettre des certificats ou vous être abonné à une autorité de certification tierce avec une chaîne approuvée. Cette rubrique part du principe que vous utilisez des services de certificats comme autorité de certification, mais vous pouvez utiliser n’importe quelle autorité de certification que vous avez configurée pour votre déploiement, ou les certificats d’une autorité de certification tierce approuvée. Si vous n’avez pas d’autorité de certification, vous pouvez installer les services de certificats et en configurer un. Pour plus d’informations, consultez l’un des ensembles de documentation suivants sur le site web Microsoft :
- Pour Windows Server 2012 : Services de certificats Active Directory
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 vous devez appartenir au groupe Administrateurs sur la couche Application, la couche Données et azure DevOps Proxy Server ou les 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é administratif ou disposer d’autorisations équivalentes définies individuellement pour la configuration de Reporting Services.
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 décrites dans cette rubrique supposent que les conditions suivantes sont remplies :
Le serveur ou les serveurs de la couche Données et de la couche Application ont été installés et déployés dans un environnement sécurisé et configurés en fonction des meilleures pratiques de sécurité.
Vous êtes familiarisé avec la configuration et la gestion des PKIs et la demande, l’émission et l’attribution de 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 vous devez utiliser une autorité de certification d’une organisation externe que vous approuvez (certificats tiers).
Pour plus d’informations sur l’installation d’une autorité de certification, consultez les rubriques suivantes sur le site web Microsoft :
Pour Windows Server 2012 : déploiement d’une hiérarchie PKI à deux niveaux AD CS
Pour Windows Server 2008 : Services de certificats Active Directory et gestion des clés publiques
Demande, installation et configuration de sites web avec un certificat
Après avoir inscrit une autorité de certification, vous devez soit demander un certificat à l’aide du Gestionnaire DES SERVICES Internet, soit installer manuellement le certificat sur chacun des serveurs suivants dans votre déploiement :
- Chaque serveur de la couche Application.
- Chaque serveur exécutant le serveur proxy Azure DevOps, le cas échéant, est configuré pour votre déploiement.
- Chaque serveur exécutant 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.
- Serveur exécutant Reporting Services, s’il est configuré pour votre déploiement.
En outre, les ordinateurs clients de votre déploiement doivent être inscrits dans la chaîne de certificats et demander le certificat nécessaire. Si vous utilisez Release Management, cela inclut 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 mise en production. 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 reconnaître et utiliser le certificat client. Pour plus d’informations sur la demande d’un certificat client auprès d’une autorité de certification spécifique, consultez la documentation relative à cette autorité de certification.
¹ Les clients et les serveurs sont appelés séparément ici, mais c’est juste une convention de ce document. Tout ordinateur exécutant l’agent de déploiement a besoin du certificat installé.
Ouvrez Gestionnaire des services Internet (IIS) .
Développez votre serveur, accédez à Certificats de serveur et créez et terminez votre demande de certificat.
Pour plus d’informations, consultez Configuration des certificats de serveur dans IIS.
Importez le certificat.
Vous devez maintenant configurer chaque site web qui exigera ce certificat avec les paramètres appropriés (à l’exception du site web Release Management, que vous allez configurer ultérieurement). Plus précisément, vous devez effectuer cette opération pour chacun des sites web suivants :
- Site web par défaut
- Azure DevOps Server
- Proxy de serveur Azure DevOps (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).
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.
Dans Liaisons de site, choisissez Ajouter.
La boîte de dialogue Ajouter la liaison de Site s'affiche.
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, serveur Azure DevOps et proxy de serveur Azure DevOps (si votre déploiement l’utilise). Vous devez enregistrer le numéro de port SSL pour chaque site web que vous configurez. Vous devez spécifier ces nombres dans la console d’administration pour Azure DevOps.
Dans certificat SSL, choisissez le certificat que vous avez importé, puis cliquez sur OK et fermez la page Liaisons.
Dans la page d’accueil du site web que vous configurez, ouvrez l’affichage Fonctionnalités .
Sous IIS, choisissez Authentification.
Choisissez une méthode d’authentification que vous souhaitez configurer, ouvrez son sous-menu, puis activez, désactivez ou effectuez une configuration supplémentaire sur la méthode, le mieux adapté à vos besoins de sécurité. Par exemple, si vous souhaitez désactiver l’authentification anonyme, vous devez choisir la méthode d’authentification anonyme et la méthode Désactiver dans le menu Actions.
Une fois la configuration terminée, redémarrez les services web.
Configuration de votre pare-feu
Vous devez configurer votre pare-feu pour autoriser le trafic via les ports SSL que vous venez de spécifier dans IIS. Pour plus d’informations, consultez la documentation de votre pare-feu.
Important
Veillez à tester le trafic sur les ports que vous avez spécifiés à partir d’un autre ordinateur. Si vous ne pouvez pas accéder au site web ou au portail web par défaut, vérifiez les paramètres de port que vous avez spécifiés pour ces sites web dans IIS et vérifiez que le pare-feu est configuré de manière appropriée pour autoriser le trafic sur ces ports.
Configurer 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 fonctionne pas correctement pour votre déploiement. Pour plus d’informations, consultez Configuration d’un serveur de rapports pour les connexions SSL (Secure Sockets Layer).
Conseil
Si votre déploiement n’utilise pas la création de rapports, vous pouvez ignorer cette procédure.
Configuration du protocole HTTPS pour Azure DevOps Server
Suivez ces étapes pour configurer votre déploiement Azure DevOps Server avec les ports https et les valeurs 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
Ouvrez la console d’administration pour Azure DevOps et accédez au nœud de la couche Application.
Dans résumé de la couche Application, choisissez Modifier les URL.
La fenêtre Modifier les URL s’ouvre.
Dans l’URL de notification, tapez l’URL HTTPS que vous avez configurée pour le site web Azure DevOps Server dans IIS.
Par exemple, vous avez peut-être configuré le site web pour utiliser le port 444. Dans ce cas, vous tapez https:// ServerName :444/tfs. Veillez à utiliser le nom de domaine complet du serveur au lieu de localhost.
Choisissez Test. Ne choisissez pas OK si le test ne passe pas. Revenez en arrière et vérifiez que vous avez entré l’URL et les informations de port 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 IIS.
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.
Veillez à utiliser le nom de domaine complet du serveur au lieu de localhost.
Choisissez Test, puis choisissez OK si le test réussit.
Si votre déploiement utilise Reporting Services, dans la console d’administration, choisissez Reporting. Sinon, ignorez le reste de cette procédure.
Dans Création de rapports, choisissez Modifier.
Si la boîte de dialogue Mettre hors connexion s’ouvre, choisissez OK.
La fenêtre Création de rapports s’ouvre.
Choisissez l’onglet Rapports . Dans les 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 tester si vos modifications fonctionnent comme prévu. Cette étape est facultative mais fortement recommandée.
Pour tester l’accès à votre déploiement
Sur un ordinateur qui n’héberge pas la couche Application, ouvrez un navigateur web et accédez à une page d’accueil d’équipe.
Vérifiez si vous pouvez accéder à vos équipes et projets à partir du portail web, y compris les pages d’administration.
Si vous ne pouvez pas accéder à votre déploiement via le portail web, passez en revue les étapes que vous venez de suivre et vérifiez que vous avez apporté toutes les modifications de configuration correctement.
Configurer votre déploiement pour exiger HTTPS avec SSL (facultatif)
Vous pouvez exiger toutes les connexions au niveau d’application Azure DevOps Server pour utiliser HTTPS avec SSL. Cette sécurité supplémentaire est facultative, mais recommandée.
Pour exiger des connexions SSL
Sur le serveur qui héberge le site web que vous souhaitez configurer, choisissez Démarrer, Choisissez Outils d’administration, puis Gestionnaire des services Internet (IIS).
Suivez les étapes appropriées pour votre version d’IIS :
Pour les déploiements qui utilisent IIS 7.0 :
Développez ComputerName, développez Sites web, puis choisissez le site web que vous souhaitez configurer.
Dans la page d’accueil de ce site web, choisissez Paramètres SSL.
Dans le volet Paramètres SSL, activez la case à cocher Exiger SSL .
(Facultatif) Activez la case à cocher Exiger ssl 128 bits.
Dans Certificats clients, choisissez Ignorer, Accepter ou Exiger, en fonction des exigences de sécurité de votre déploiement.
Dans Actions, choisissez Appliquer.
Répétez ces étapes pour chaque site web pour lequel vous souhaitez exiger SSL.
Installation du certificat sur les serveurs de build
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 approuvées de chaque serveur. Pour plus d’informations, consultez Obtenir un certificat et demander, installer et configurer des sites web avec un certificat plus haut dans cette rubrique. Le contrôleur et l’agent nécessitent un certificat avec une clé privée avec laquelle s’identifier dans les connexions HTTPS.
Remarque
Pour effectuer des builds via SSL, le certificat doit être installé dans le magasin racine approuvé sur le contrôleur de build et l’agent de build.
Mise à jour des configurations de build
Pour configurer Team Foundation Build pour les connexions SSL, vous devez configurer le service de build pour utiliser l’URL HTTPS que vous avez configurée pour la couche Application et la collection prise en charge par la configuration de build. Vous devez configurer cette URL pour chaque configuration de build dans votre déploiement.
Pour modifier une configuration de build pour utiliser HTTPS
Sur le serveur qui héberge la configuration de build que vous souhaitez configurer, ouvrez la console d’administration pour Team Foundation.
Sous Team Foundation, développez le nom du serveur, puis choisissez Configuration de build.
Le volet Configuration de build s’affiche.
Sous la configuration du service, choisissez Arrêter, puis choisissez Propriétés.
La boîte de dialogue Propriétés du service de génération s’ouvre.
Dans Communications, vérifiez que l’URL de la collection de projets utilise l’adresse HTTPS correcte et le nom complet du serveur.
Dans le point de terminaison du service de génération local (entrant), choisissez Modifier.
La boîte de dialogue Point de terminaison du service de génération s’ouvre.
Dans Détails du point de terminaison, vérifiez que le numéro de port correspond à vos détails de configuration.
Dans Protocole, choisissez HTTPS.
Dans la liste des certificats SSL, choisissez le certificat que vous avez installé et configuré pour une utilisation avec ce déploiement, puis choisissez OK.
Dans la boîte de dialogue Propriétés du service de génération, choisissez Démarrer.
Configuration des ordinateurs clients
Sur chaque ordinateur client à partir duquel les utilisateurs accèdent à Azure DevOps, vous devez installer le certificat localement et effacer le cache du client pour tous les utilisateurs qui ont 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 exécutant à la fois Azure DevOps Server et un ou plusieurs clients d’Azure DevOps.
Pour installer le certificat sur un ordinateur client
Connectez-vous à l’ordinateur à l’aide d’un compte appartenant au groupe Administrateurs sur cet ordinateur.
Installez le certificat dans le dossier Autorités de certification racines approuvées pour l’ordinateur local.
Pour effacer le cache sur un ordinateur client
Connectez-vous à l’ordinateur à l’aide des informations d’identification de l’utilisateur dont vous souhaitez effacer le cache.
Fermez les instances ouvertes de Visual Studio.
Dans une fenêtre de navigateur, ouvrez le dossier suivant :
Lecteur :\Users\ UserName \AppData\Local\Microsoft\Team Foundation\4.0\Cache
Supprimez le contenu du répertoire cache. Veillez à supprimer tous les sous-dossiers.
Choisissez Démarrer, choisissez Exécuter, tapez devenv /resetuserdata, puis choisissez OK.
Répétez ces étapes pour le compte de chaque utilisateur qui a accédé à Team Foundation à partir de cet ordinateur.
Remarque
Vous souhaiterez peut-être distribuer des instructions pour effacer le cache à tous vos utilisateurs Azure DevOps afin qu’ils puissent effacer les caches eux-mêmes.
Pour connecter des ordinateurs clients au déploiement reconfiguré
Dans Visual Studio, connectez-vous à Azure DevOps Server à l’aide de la nouvelle URL HTTPS.
Pour plus d’informations, consultez Se connecter à des projets dans Azure DevOps Server.
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. Cela est dû au fait que 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 son 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 chaîne de certification pour votre déploiement TFS 2013. Il s’agit d’une tâche de configuration du 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 appartenant au groupe Administrateurs sur cet ordinateur.
Vérifiez que le certificat requis a été installé et configuré sur l’ordinateur, comme indiqué ci-dessus.
Dans votre navigateur web pris en charge, extrayez le certificat racine du serveur Azure DevOps en tant que fichier X.509 CER/PEM codé en base64.
Créez une copie privée du magasin de certificats racine Git et ajoutez-le à votre copie utilisateur privée du magasin.