Configurare HTTPS con SSL (Secure Sockets Layer) per Azure DevOps in locale

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

È possibile rafforzare la sicurezza della distribuzione di Azure DevOps Server configurandola per l'uso di Hypertext Transfer Protocol Secure (HTTPS) con Secure Sockets Layer (SSL). È possibile scegliere di richiedere questo protocollo, che ottimizza la sicurezza della distribuzione oppure è possibile scegliere di supportare HTTPS con SSL oltre al protocollo predefinito HTTP. Se si usa Release Management per Visual Studio 2013, è anche possibile configurarlo per l'uso di HTTPS con SSL, anche se non è possibile configurarlo per supportare sia HTTP che HTTPS con SSL.

Prima di scegliere una configurazione, esaminare i vantaggi e gli svantaggi descritti qui. Dopo aver identificato la configurazione più adatta alle esigenze di sicurezza dell'organizzazione, seguire la procedura descritta in questo argomento per configurare la distribuzione.

Contenuto dell'argomento

Vantaggi del supporto di HTTPS con SSL oltre a HTTP

Se si configura la distribuzione di Azure DevOps Server per supportare entrambi i protocolli, gli utenti i cui computer sono stati configurati per HTTPS con SSL si connetteranno usando tale protocollo, che rende la distribuzione più sicura. Inoltre, gli utenti i cui computer sono configurati per HTTP possono comunque connettersi alla distribuzione. Sebbene non sia consigliabile distribuire questa configurazione su reti pubbliche, è possibile ottenere i vantaggi seguenti continuando a supportare le connessioni HTTP in un ambiente di rete controllato:

  • È possibile aumentare la sicurezza della distribuzione nel tempo configurando i computer client per HTTPS con SSL come consentito dalla pianificazione. Se si usa un approccio in più fasi, non è necessario aggiornare tutti i computer contemporaneamente e gli utenti i cui computer non sono ancora stati aggiornati possono comunque connettersi alla distribuzione.

  • È possibile configurare e gestire più facilmente Azure DevOps Server.

  • Le chiamate da un servizio Web a un altro sono più veloci su HTTP rispetto a HTTPS con SSL. Pertanto, è possibile continuare a supportare le connessioni HTTP dai computer client per cui i requisiti di prestazioni superano i rischi per la sicurezza.

Vantaggi della richiesta di HTTPS con SSL per tutte le connessioni

Se è necessario HTTPS con SSL per tutte le connessioni, si ottengono i vantaggi seguenti:

  • Tutte le connessioni Web tra il livello applicazione, il livello dati e il livello client per Azure DevOps sono più sicure perché richiedono certificati.

  • È possibile controllare più facilmente l'accesso configurando i certificati per scadere quando è prevista la fine di una fase del progetto.

Svantaggi del supporto o della richiesta di HTTPS con SSL

Prima di configurare Azure DevOps Server per supportare o richiedere HTTPS con SSL, è consigliabile considerare gli svantaggi seguenti:

  • È possibile complicare le attività di amministrazione in corso. Ad esempio, potrebbe essere necessario riconfigurare la distribuzione per interrompere il supporto di HTTPS con SSL prima di poter applicare Service Pack o altri aggiornamenti.

  • È necessario non solo configurare, ma anche gestire un'autorità di certificazione (CA) e i trust dei certificati. È possibile usare Servizi certificati in Windows Server 2003 e Windows Server 2008, ma potrebbe non essere necessario investire tempo e risorse che distribuiscono un'infrastruttura a chiave pubblica sicura (PKI).

  • È necessario dedicare molto tempo alla configurazione e al test di una di queste configurazioni e la risoluzione dei problemi della distribuzione diventerà più difficile.

  • Se si continua a supportare entrambi i protocolli, le connessioni esterne potrebbero non essere crittografate se il livello applicazione per Azure DevOps non è protetto in modo appropriato.

  • Se è necessario HTTPS con SSL, le prestazioni della distribuzione saranno più lente.

Configurazione della distribuzione per supportare o richiedere HTTPS con SSL

Le procedure descritte in questo argomento descrivono un processo per richiedere, emettere e assegnare certificati necessari per le connessioni SSL in Azure DevOps Server. Se si usa software diverso da quello descritto in questo argomento, potrebbe essere necessario eseguire passaggi diversi. Per supportare connessioni esterne alla distribuzione di Azure DevOps Server, è necessario abilitare anche l'autenticazione di base, l'autenticazione digest o entrambi in Internet Information Services (IIS).

Seguendo le procedure descritte in questo argomento, verranno eseguite le attività seguenti:

  1. Ottenere i certificati per la distribuzione di Azure DevOps Server e i siti Web usati.

  2. Installare e assegnare i certificati.

  3. Configurare Azure DevOps Server.

  4. Configurare Team Foundation Build.

  5. Configurare Release Management per Visual Studio 2013

  6. Configurare i computer client.

Prerequisiti

Per eseguire le procedure descritte in questo argomento, è prima necessario soddisfare i requisiti seguenti:

  • I componenti logici nei livelli dati e applicazione di Azure DevOps devono essere installati, anche se nel caso di Azure DevOps Server stesso, non necessariamente configurati. Questi livelli includono IIS, SQL Server e tutti i componenti aggiuntivi che potrebbero essere stati integrati, ad esempio Team Foundation Build e SQL Server Reporting Services.

    Le procedure descritte in questo argomento fanno riferimento al server o ai server che eseguono i componenti logici nei livelli applicazione e dati per Azure DevOps. I livelli di applicazione e dati potrebbero essere in esecuzione nello stesso server o in più server, come descritto nella guida all'installazione di Azure DevOps Server.

  • È necessario disporre di un'autorità di certificazione (CA) da cui è possibile rilasciare certificati o aver sottoscritto un'autorità di certificazione di terze parti con una catena attendibile. In questo argomento si presuppone che si usi Servizi certificati come CA, ma è possibile usare qualsiasi AUTORITÀ di certificazione configurata per la distribuzione o certificati di un'autorità di certificazione di terze parti attendibile. Se non si dispone di un'autorità di certificazione, è possibile installare Servizi certificati e configurare uno. Per altre informazioni, vedere uno dei set di documentazione seguenti nel sito Web Microsoft:

  • È necessario essere un amministratore per configurare tutti i componenti della distribuzione per HTTPS e SSL. Se si lavora in una distribuzione distribuita in cui persone diverse dispongono di autorizzazioni amministrative per singoli componenti, è necessario coordinare le persone per completare la configurazione.

  • In particolare, è necessario appartenere al gruppo Amministratori di Team Foundation ed è necessario appartenere al gruppo Administrators nel livello applicazione, nel livello dati e nel server proxy di Azure DevOps per Team Foundation.

  • Per configurare un server di compilazione, è necessario appartenere al gruppo Administrators in tale server.

  • Per configurare Release Management, è necessario appartenere al gruppo Administrators nel server che ospita Release Management Server ed essere membro del ruolo Release Manager in Release Management.

  • Se la distribuzione usa la creazione di report, è necessario essere membri di un gruppo di sicurezza amministrativo o disporre di autorizzazioni equivalenti impostate singolarmente per la configurazione di Reporting Services.

    Per altre informazioni sulle autorizzazioni, vedere Informazioni di riferimento sulle autorizzazioni per Azure DevOps Server.

Presupposti

Le procedure descritte in questo argomento presuppongono che le condizioni seguenti siano vere:

  • I server o i server livello dati e livello applicazione sono stati installati e distribuiti in un ambiente sicuro e configurati in base alle procedure consigliate per la sicurezza.

  • Si ha familiarità con come configurare e gestire le infrastruttura a chiave pubblica e le richieste, il rilascio e l'assegnazione dei certificati.

  • Si ha una conoscenza approfondita della topologia di rete dell'ambiente di sviluppo e si ha familiarità con la configurazione delle impostazioni di rete, IIS e SQL Server.

Ottenere un certificato

Prima di configurare Azure DevOps Server per l'uso di HTTPS con SSL, è necessario ottenere e installare un certificato server per i server nella distribuzione. Per ottenere un certificato server, è necessario installare e configurare la propria autorità di certificazione oppure usare un'autorità di certificazione di un'organizzazione esterna attendibile (certificati di terze parti).

Per altre informazioni su come installare un'autorità di certificazione, vedere gli argomenti seguenti nel sito Web Microsoft:

Richiesta, installazione e configurazione di siti Web con un certificato

Dopo aver eseguito l'integrazione in un'autorità di certificazione, è necessario richiedere un certificato tramite Gestione IIS oppure installare manualmente il certificato in ognuno dei server seguenti nella distribuzione:

  • Ogni server a livello di applicazione.
  • Ogni server che esegue il server proxy di Azure DevOps, se è configurato per la distribuzione.
  • Ogni server che esegue il servizio Team Foundation Build come controller di compilazione o agente di compilazione, se sono configurati per la distribuzione.
  • Server che esegue Reporting Services, se ne è configurato uno per la distribuzione.

Inoltre, i computer client nella distribuzione dovranno essere registrati nella catena di certificati e richiedere il certificato necessario. Se si usa Release Management, sono inclusi tutti i computer che eseguono il client Release Management, nonché tutti i client che eseguono l'agente di distribuzione negli ambienti di rilascio. Se uno o più progetti usano Git per il controllo della versione, gli utenti di tali progetti dovranno anche configurare Git nei computer per riconoscere e usare il certificato client. Per informazioni su come richiedere un certificato client da una CA specifica, vedere la documentazione per l'autorità di certificazione.

¹ I client e i server vengono chiamati separatamente qui, ma questa è solo una convenzione di questo documento. Per qualsiasi computer che esegue l'agente di distribuzione è necessario che sia installato il certificato.

  1. Aprire Gestione Internet Information Services (IIS).

  2. Espandere il server, passare a Certificati server e creare e completare la richiesta di certificato.

    Aprire Gestione IIS e richiedere un certificato

    Creare una richiesta, quindi completarla

    Per altre informazioni, vedere Configurazione dei certificati del server in IIS.

  3. Importare il certificato.

  4. A questo punto è necessario configurare ogni sito Web che richiederà questo certificato con le impostazioni appropriate, ad eccezione del sito Web di Release Management, che verrà configurato in un secondo momento. In particolare, è necessario eseguire questa operazione per ognuno dei siti Web seguenti:

    • Sito Web predefinito
    • Azure DevOps Server
    • Azure DevOps Server Proxy (se la distribuzione lo usa)

    In ogni server che ospita un sito Web da configurare aprire Gestione Internet Information Services (IIS).

  5. Espandere ComputerName, espandere Siti, aprire il sottomenu per il sito Web che si vuole configurare(ad esempio, Azure DevOps Server) e quindi scegliere Associazioni dal riquadro Azioni.

    È necessario configurare le associazioni per tutti i siti

  6. In Associazioni sito scegliere Aggiungi.

    La finestra di dialogo Aggiungi binding del sito verrà visualizzata.

  7. Nell'elenco Tipo scegliere https.

    In Porta digitare un numero di porta diverso.

    Importante

    Il numero di porta predefinito per le connessioni SSL è 443, ma è necessario assegnare un numero di porta univoco per ognuno dei siti seguenti: Sito Web predefinito, Azure DevOps Server e Azure DevOps Server Proxy (se la distribuzione lo usa). È necessario registrare il numero di porta SSL per ogni sito Web configurato. È necessario specificare questi numeri nella console di amministrazione per Azure DevOps.

    In Certificato SSL scegliere il certificato importato, quindi scegliere OK e chiudere la pagina Associazioni.

    Assicurarsi di scegliere un numero di porta univoco

  8. Nella home page del sito Web che si sta configurando aprire la visualizzazione Funzionalità.

  9. In IIS scegliere Autenticazione.

  10. Scegliere un metodo di autenticazione che si vuole configurare, aprire il relativo sottomenu e quindi abilitare, disabilitare o eseguire una configurazione aggiuntiva sul metodo, in base alle esigenze di sicurezza. Ad esempio, se si vuole disabilitare l'autenticazione anonima, scegliere il metodo di autenticazione anonima e scegliere Disabilita dal menu Azioni.

    Scegliere il metodo e quindi l'azione da eseguire

  11. Al termine della configurazione, riavviare i servizi Web.

Configurazione del firewall

È necessario configurare il firewall per consentire il traffico attraverso le porte SSL appena specificate in IIS. Per altre informazioni, vedere la documentazione relativa al firewall.

Importante

Assicurarsi di testare il traffico sulle porte specificate da un altro computer. Se non è possibile accedere al sito Web predefinito o al portale Web, controllare le impostazioni della porta specificate per questi siti Web in IIS e assicurarsi che il firewall sia configurato in modo appropriato per consentire il traffico su tali porte.

Configurare SQL Server Reporting Services

Se la distribuzione usa la creazione di report, è necessario configurare SQL Server Reporting Services per supportare HTTPS con SSL e usare la porta specificata in IIS per Azure DevOps Server. In caso contrario, il server di report non funzionerà correttamente per la distribuzione. Per altre informazioni, vedere Configurazione di un server di report per connessioni SSL (Secure Sockets Layer).

Suggerimento

Se la distribuzione non usa la creazione di report, è possibile ignorare questa procedura.

Configurazione di HTTPS per il server Azure DevOps

Seguire questa procedura per configurare la distribuzione di Azure DevOps Server con le porte HTTPS e i valori configurati in IIS per i siti Web predefiniti e azure DevOps Server.

Per riconfigurare Azure DevOps Server per usare o richiedere HTTPS

  1. Aprire la console di amministrazione per Azure DevOps e passare al nodo del livello applicazione.

  2. In Riepilogo livello applicazione scegliere Modifica URL.

    Verrà visualizzata la finestra Modifica URL .

  3. In URL di notifica digitare l'URL HTTPS configurato per il sito Web di Azure DevOps Server in IIS.

    Ad esempio, potrebbe essere stato configurato il sito Web per l'uso della porta 444. In questo caso, si digita https:// ServerName:444/tfs. Assicurarsi di usare il nome di dominio completo del server anziché localhost.

    Specificare HTTPS, server e porta nell'indirizzo

  4. Scegliere Test. Non scegliere OK se il test non viene superato. Tornare indietro e assicurarsi di aver immesso le informazioni corrette sull'URL e sulla porta, che tutti i firewall siano configurati per consentire il traffico su tali porte e che il sito sia disponibile e in esecuzione in Gestione IIS.

  5. Per richiedere HTTPS, scegliere Usa nell'URL del server e quindi digitare l'URL HTTPS configurato per il sito Web di Azure DevOps Server.

    Assicurarsi di usare il nome di dominio completo del server anziché localhost.

  6. Scegliere Test e quindi scegliere OK se il test viene superato.

  7. Se la distribuzione usa Reporting Services, nella console di amministrazione scegliere Creazione di report. In caso contrario, ignorare il resto di questa procedura.

  8. In Creazione report scegliere Modifica.

    Se viene visualizzata la finestra di dialogo Porta offline , scegliere OK.

    Verrà visualizzata la finestra Report .

  9. Scegliere la scheda Report . In URL per server di report digitare gli URL HTTPS per Servizio Web e Gestione report e quindi scegliere OK.

Testare l'accesso alla distribuzione

È necessario verificare se le modifiche funzionano come previsto. Questo passaggio è facoltativo ma fortemente consigliato.

Per testare l'accesso alla distribuzione

  1. In un computer che non ospita il livello applicazione aprire un Web browser e passare a una home page del team.

  2. Verificare se è possibile accedere ai team e ai progetti dal portale Web, incluse le pagine di amministrazione.

  3. Se non è possibile accedere alla distribuzione tramite il portale Web, esaminare i passaggi appena completati e assicurarsi di aver apportato correttamente tutte le modifiche alla configurazione.

Configurare la distribuzione per richiedere HTTPS con SSL (facoltativo)

È possibile richiedere tutte le connessioni al livello applicazione Azure DevOps Server per usare HTTPS con SSL. Questa sicurezza aggiuntiva è facoltativa, ma consigliata.

Per richiedere connessioni SSL

  1. Nel server che ospita il sito Web che si desidera configurare scegliere Start, scegliere Strumenti di amministrazione e quindi Gestione Internet Information Services (IIS).

  2. Seguire i passaggi appropriati per la versione di IIS:

    Per le distribuzioni che usano IIS 7.0:

    1. Espandere ComputerName, espandere Siti Web e quindi scegliere il sito Web da configurare.

    2. Nella home page del sito Web scegliere Impostazioni SSL.

    3. Nel riquadro Impostazioni SSL selezionare la casella di controllo Richiedi SSL.

      (Facoltativo) Selezionare la casella di controllo Richiedi SSL a 128 bit.

    4. In Certificati client scegliere Ignora, Accetta o Richiedi, a seconda dei requisiti di sicurezza della distribuzione.

    5. In Azioni scegliere Applica.

    6. Ripetere questi passaggi per ogni sito Web per il quale si vuole richiedere SSL.

Installazione del certificato nei server di compilazione

Se il servizio Team Foundation Build è stato installato in uno o più server, è necessario installare il certificato nell'archivio Autorità di certificazione radice attendibili di ogni server. Per altre informazioni, vedere Recupero di un certificato e richiesta, installazione e configurazione di siti Web con un certificato precedente in questo argomento. Sia il controller che l'agente richiedono un certificato con una chiave privata con cui identificarsi nelle connessioni HTTPS.

Nota

Per eseguire compilazioni tramite SSL, il certificato deve essere installato nell'archivio radice attendibile sia nel controller di compilazione che nell'agente di compilazione.

Aggiornamento delle configurazioni di compilazione

Per configurare Team Foundation Build per le connessioni SSL, è necessario configurare il servizio di compilazione in modo da usare l'URL HTTPS configurato per il livello applicazione e la raccolta supportata dalla configurazione di compilazione. È necessario configurare questo URL per ogni configurazione di compilazione nella distribuzione.

Per modificare una configurazione di compilazione per l'uso di HTTPS

  1. Nel server che ospita la configurazione di compilazione da configurare aprire la console di amministrazione per Team Foundation.

  2. In Team Foundation espandere il nome del server e quindi scegliere Compila configurazione.

    Viene visualizzato il riquadro Build Configuration (Configurazione compilazione ).

  3. Nella configurazione del servizio scegliere Arresta e quindi proprietà.

    Verrà visualizzata la finestra di dialogo Proprietà servizio di compilazione.

  4. In Comunicazioni assicurarsi che l'URL per la raccolta di progetti usi l'indirizzo HTTPS corretto e il nome completo del server.

  5. In Local Build Service Endpoint (in ingresso) scegliere Cambia.

    Verrà visualizzata la finestra di dialogo Compila endpoint servizio.

  6. In Dettagli endpoint verificare che il numero di porta corrisponda ai dettagli di configurazione.

  7. In Protocollo scegliere HTTPS.

  8. Nell'elenco Certificati SSL scegliere il certificato installato e configurato per l'uso con questa distribuzione e quindi scegliere OK.

    Assicurarsi che i dettagli della configurazione corrispondano

  9. Nella finestra di dialogo Proprietà servizio di compilazione scegliere Avvia.

Configurazione dei computer client

In ogni computer client da cui gli utenti accedono ad Azure DevOps, è necessario installare il certificato in locale e cancellare la cache client per qualsiasi utente che ha eseguito l'accesso ad Azure DevOps da tale computer. In caso contrario, gli utenti non potranno connettersi ad Azure DevOps da tale computer. Per altre informazioni, vedere Gestire i certificati radice attendibili.

Importante

Non seguire questa procedura per i computer che eseguono sia Azure DevOps Server che uno o più client di Azure DevOps.

Per installare il certificato in un computer client

  1. Accedere al computer usando un account appartenente al gruppo Administrators in tale computer.

  2. Installare il certificato nella cartella Autorità di certificazione radice attendibili per il computer locale.

Per cancellare la cache in un computer client

  1. Accedere al computer usando le credenziali dell'utente di cui si desidera cancellare la cache.

  2. Chiudere tutte le istanze aperte di Visual Studio.

  3. In una finestra del browser aprire la cartella seguente:

    Unità :\Users\ UserName \AppData\Local\Microsoft\Team Foundation\4.0\Cache

  4. Eliminare il contenuto della directory cache. Assicurarsi di eliminare tutte le sottocartelle.

  5. Scegliere Start, scegliere Esegui, digitare devenv /resetuserdata e quindi scegliere OK.

  6. Ripetere questi passaggi per l'account di ogni utente che ha eseguito l'accesso a Team Foundation da tale computer.

    Nota

    È possibile distribuire le istruzioni per cancellare la cache a tutti gli utenti di Azure DevOps in modo che possano cancellare automaticamente le cache.

Per connettere i computer client alla distribuzione riconfigurata

Configurazione di Git

Per impostazione predefinita, i progetti che usano Git per il controllo della versione non riusciranno a convalidare il certificato SSL configurato per Azure DevOps Server. Ciò è dovuto al fatto che, a differenza di Azure DevOps Server e Visual Studio, Git non riconosce l'archivio certificati di Windows. Usa invece OpenSSL per l'archivio certificati. Per usare un repository Git per i progetti configurati con SSL, è necessario configurare Git con il certificato nella radice della catena di certificazione per la distribuzione di TFS 2013. Si tratta di un'attività di configurazione client valida solo per i progetti repository Git.

Per altre informazioni sul funzionamento delle operazioni di rete Git in Visual Studio 2013, vedere questo post di blog.

Suggerimento

Per altre attività di gestione delle credenziali Git, ad esempio autenticazione di Windows, è consigliabile scaricare e installare Windows Credential Store per Git.

Per configurare l'archivio certificati per Git

  • Accedere al computer usando un account appartenente al gruppo Administrators in tale computer.

  • Assicurarsi che il certificato richiesto sia stato installato e configurato nel computer, come indicato in precedenza.

  • Nel Web browser supportato estrarre il certificato radice di Azure DevOps Server come file CER/PEM con codifica Base64.

  • Creare una copia privata dell'archivio certificati radice Git e aggiungerla alla copia dell'utente privato dell'archivio.