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

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

È 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). Si può scegliere di richiedere questo protocollo, ottimizzando la sicurezza della distribuzione, o di supportare HTTPS con SSL in aggiunta al protocollo predefinito HTTP. Se si usa Release Management per Visual Studio 2013, è possibile configurarlo per l'uso di HTTPS con SSL, ma non per il supporto concomitante di HTTP e di HTTPS con SSL.

Prima di scegliere una configurazione, esaminare attentamente i vantaggi e gli svantaggi descritti in questo argomento. Dopo avere identificato la configurazione che meglio soddisfa le esigenze di sicurezza dell'organizzazione, configurare la distribuzione seguendo i passaggi illustrati in questo argomento.

Contenuto dell'argomento

Vantaggi del supporto di HTTPS con SSL in aggiunta 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 connettono usando tale protocollo, che rende la distribuzione più sicura. Inoltre, gli utenti i cui computer sono configurati solo per HTTP potranno comunque connettersi alla distribuzione. Anche se non è necessario distribuire la configurazione attraverso reti pubbliche, continuando a supportare connessioni HTTP in un ambiente di rete controllato sarà possibile ottenere i vantaggi riportati di seguito.

  • Possibilità di aumentare nel tempo la sicurezza della distribuzione configurando computer client per HTTPS con SSL come consentito dalla pianificazione. Se si sceglie un approccio graduale, non sarà necessario aggiornare contemporaneamente tutti i computer e gli utenti i cui computer non sono ancora stati aggiornati potranno comunque connettersi alla distribuzione.

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

  • Le chiamate da un servizio Web a un altro attraverso HTTP sono più veloci rispetto alle chiamate attraverso HTTPS con SSL. Pertanto, è possibile continuare a supportare le connessioni HTTP dai computer client per i quali i requisiti di prestazioni hanno un peso maggiore rispetto ai problemi di sicurezza.

Vantaggi della richiesta di HTTPS con SSL per tutte le connessioni

La richiesta di HTTPS con SSL per tutte le connessioni offre i vantaggi riportati di seguito.

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

  • Maggiore semplicità nel controllo dell'accesso garantita dalla configurazione della scadenza dei certificati in corrispondenza della fine prevista per 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:

  • Le attività di amministrazione continuative potrebbero risultare più complicate. Ad esempio, prima di poter applicare correttamente Service Pack o altri aggiornamenti, potrebbe essere necessario riconfigurare la distribuzione per arrestare il supporto di HTTPS con SSL.

  • È necessario non solo configurare, ma anche gestire un'autorità di certificazione (CA) ed elenchi di certificati attendibili. È 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).

  • L'impostazione e il test di ciascuna di queste configurazioni richiedono una quantità di tempo rilevante e la risoluzione dei problemi relativi alla distribuzione risulterà 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 si richiede HTTPS con SSL, le prestazioni della distribuzione risulteranno ridotte.

Configurazione della distribuzione per il supporto o la richiesta di HTTPS con SSL

Le procedure in questo argomento descrivono un processo per la richiesta, l'emissione e l'assegnazione di certificati necessari per le connessioni SSL in Azure DevOps Server. Se si utilizza un software diverso rispetto a quello descritto in questo argomento, potrebbe essere necessario eseguire una procedura diversa. Per supportare le connessioni esterne alla distribuzione Azure DevOps Server, è necessario abilitare anche l'autenticazione di base, l'autenticazione del digest o entrambi in Internet Information Services (IIS).

Attenendosi alle procedure illustrate in questo argomento, sarà possibile completare le attività indicate di seguito.

  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, è innanzitutto necessario soddisfare i requisiti riportati di seguito.

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

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

  • È necessario disporre di un'autorità di certificazione (CA) tramite cui rilasciare i certificati oppure avere effettuato la sottoscrizione a un'autorità di certificazione con una catena attendibile. Questo argomento ipotizza l'uso di Servizi certificati come autorità di certificazione, ma è possibile usare qualsiasi autorità di certificazione configurata per la distribuzione o qualsiasi certificato rilasciato da un'autorità di certificazione di terze parti attendibile. Se non si dispone di un'Autorità di certificazione, sarà possibile installare Servizi certificati e configurarne una. Per altre informazioni, vedere uno dei seguenti argomenti della documentazione disponibili sul sito Web di 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 utenti diversi dispongono di autorizzazioni amministrative per singoli componenti, è necessario coordinare con tali persone per completare la configurazione.

  • In particolare, è necessario appartenere al gruppo Amministratori di Team Foundation e è necessario appartenere al gruppo Administrators nel livello applicazione, livello dati e 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 e essere membro del ruolo Release Manager in Release Management.

  • Se nella distribuzione è utilizzata la funzionalità di creazione rapporti, è necessario essere un membro di un gruppo di sicurezza amministrativo o disporre di autorizzazioni equivalenti impostate singolarmente per configurare il servizio Reporting Services.

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

Presupposti

Nelle procedure incluse in questo argomento si presuppone che siano state soddisfatte tutte le condizioni indicate di seguito.

  • Installazione e distribuzione del server o dei server di livello dati e di livello applicazione in un ambiente sicuro e configurazione in base alle procedure di sicurezza consigliate.

  • Familiarità con le modalità di configurazione e gestione delle infrastrutture a chiave pubblica (PKI), nonché con le modalità di richiesta, emissione e assegnazione di certificati.

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

Acquisizione di un certificato

Prima di configurare Azure DevOps Server per usare HTTPS con SSL, è necessario ottenere e installare un certificato server per i server nella distribuzione. Per ottenere un certificato del server, è necessario installare e configurare l'autorità di certificazione oppure usare un'autorità di certificazione di un'organizzazione esterna considerata 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 avere integrato un'Autorità di certificazione, è necessario richiedere un certificato tramite Gestione IIS o installare manualmente il certificato in ogni server della distribuzione, come indicato di seguito.

  • Tutti i server di livello applicazione.
  • Ogni server che esegue Azure DevOps Proxy Server, se è configurato per la distribuzione.
  • Ogni server che esegue il servizio Team Foundation Build come controller di compilazione o agente di compilazione, se è configurato per la distribuzione.
  • Il server che esegue Reporting Services, se configurato per la distribuzione.

Inoltre, i computer client nella distribuzione devono essere iscritti alla catena di certificati e richiedere il certificato necessario. Se si usa Release Management, sono inclusi tutti i computer che eseguono il Release Management Client e tutti i client¹ che eseguono Deployment Agent negli ambienti di rilascio. Se per uno o più progetti viene utilizzato Git per il controllo della versione, anche gli utenti di questi progetti dovranno configurare Git nei propri computer, affinché il certificato del client possa essere riconosciuto e utilizzato. Per informazioni su come richiedere un certificato del client a un'Autorità di certificazione (CA) specifica, consultare la documentazione relativa all'Autorità di certificazione.

¹ Client e server sono indicati separatamente, ma si tratta solo di una convenzione adottata nel documento. Tutti i computer che eseguono Deployment Agent devono avere 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 e completarla

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

  3. Importare il certificato.

  4. A questo punto è necessario configurare con le impostazioni appropriate ogni sito Web che richiede questo certificato (ad eccezione del sito Web di Release Management che viene configurato successivamente). In particolare, sarà necessario eseguire questa operazione per ciascuno dei seguenti siti Web:

    • 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 proxy Azure DevOps Server (se la distribuzione lo usa). Registrare il numero di porta SSL per ogni sito Web configurato. Sarà 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.

    Verificare 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 desidera configurare, aprire il relativo sottomenu, quindi abilitare, disabilitare o impostare una configurazione aggiuntiva per il metodo secondo le proprie esigenze di sicurezza. Ad esempio, per 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. Una volta completata la configurazione, riavviare i servizi Web.

Configurazione del firewall

Per consentire il traffico tramite le porte SSL appena specificate in IIS, è necessario configurare il firewall. Per altre informazioni, vedere la documentazione relativa al firewall in uso.

Importante

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

Configurazione di 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 rapporti 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 utilizza la funzionalità di creazione rapporti, è possibile ignorare questa procedura.

Configurazione di HTTPS per Azure DevOps Server

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 Azure DevOps Server in IIS.

    Ad esempio, è probabile che il sito Web sia stato configurato per l'utilizzo della porta 444. In questo caso, si digita https:// ServerName:444/tfs. Assicurarsi di utilizzare 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 ai passaggi precedenti e assicurarsi di aver immesso le informazioni corrette sugli URL e sulle porte, che tutti i firewall siano configurati per consentire il traffico su queste porte e che il sito sia disponibile e in esecuzione in Gestione IIS.

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

    Assicurarsi di utilizzare 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

Si consiglia di verificare se le modifiche apportate generano i risultati previsti. Questo passaggio è facoltativo, ma fortemente consigliato.

Per effettuare il test di accesso alla distribuzione

  1. In un computer che non ospita il livello applicazione, aprire un Web browser e passare alla home page di un 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 impostazione aggiuntiva di sicurezza è 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 relativi alla versione di IIS in uso:

    Per distribuzioni che utilizzano 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 desidera 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 Ottenere un certificato e richiedere, installare e configurare siti Web con un certificato precedente in questo argomento. Il controller e l'agente richiedono entrambi un certificato con una chiave privata tramite cui identificarsi nelle connessioni HTTPS.

Nota

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

Aggiornamento delle configurazioni della 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 della compilazione. È necessario configurare questo URL per ogni configurazione della compilazione nella distribuzione.

Per modificare una configurazione della compilazione per l'utilizzo di HTTPS

  1. Nel server che ospita la configurazione di compilazione che si vuole 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 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 di 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 utilizzando le credenziali dell'utente per 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 della 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. Utilizza invece OpenSSL come archivio certificati. Per usare un repository Git in progetti configurati con SSL, sarà necessario configurare Git con il certificato alla radice della catena di certificazione per la distribuzione di TFS 2013. Si tratta di un'attività di configurazione client che si applica solo ai progetti con 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 obbligatorio sia stato installato e configurato nel computer, come indicato in precedenza.

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

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