Configurazione di TLS per un'applicazione in Azure
Importante
Servizi cloud (versione classica) è ora deprecato per tutti i clienti a partire dal 1° settembre 2024. Tutte le distribuzioni in esecuzione esistenti verranno arrestate e arrestate da Microsoft e i dati andranno persi definitivamente a partire da ottobre 2024. Le nuove distribuzioni devono usare il nuovo modello di distribuzione basato su Azure Resource Manager Servizi cloud di Azure (supporto "Extended").
Il protocollo TLS (Transport Layer Security), precedentemente noto come crittografia SSL (Secure Socket Layer), è il metodo più comunemente usato per proteggere i dati inviati in Internet. In questa attività comune viene illustrato come specificare un endpoint HTTPS per un ruolo Web e come caricare un certificato TLS/SSL per proteggere l'applicazione.
Nota
Le procedure in questa attività si applicano a Servizi cloud di Azure. Per Servizi app, vedere questo articolo.
In questa attività viene usata una distribuzione di produzione. Alla fine di questo articolo vengono fornite informazioni sull'uso di una distribuzione di gestione temporanea.
Vedere prima Come creare e distribuire prima un servizio cloud di Azure (versione classica) se non è ancora stato creato un servizio cloud.
Passaggio 1: Ottenere un certificato TLS/SSL
Per configurare TLS per un'applicazione, è prima necessario ottenere un certificato TLS/SSL firmato da un'Autorità di certificazione (CA), ovvero un partner attendibile che rilascia certificati per questo scopo. Se non si ha già un certificato, è necessario ottenerne uno da un rivenditore di certificati TLS/SSL.
Il certificato deve soddisfare i requisiti seguenti per i certificati TLS/SSL in Azure:
- Il certificato deve contenere una chiave pubblica.
- Il certificato deve essere stato creato per lo scambio di chiave, esportabile in un file con estensione pfx (Personal Information Exchange).
- Il nome del soggetto del certificato deve corrispondere al dominio usato per accedere al servizio cloud. Non è possibile ottenere un certificato TLS/SSL da un'Autorità di certificazione (CA) per il dominio cloudapp.net. È necessario acquistare un nome di dominio personalizzato da utilizzare per accedere al proprio servizio. Quando si richiede un certificato da una CA, il nome del soggetto del certificato deve corrispondere al nome di dominio personalizzato utilizzato per accedere all'applicazione. Se ad esempio il nome di dominio personalizzato è contoso.com, il certificato da richiedere alla CA è *.contoso.com o www.contoso.com.
- Per il certificato deve essere usata una crittografia di almeno 2048 bit.
Per eseguire delle prove, è possibile creare e usare un certificato auto firmato. Un certificato autofirmato non è autenticato tramite una CA e può usare il dominio cloudapp.net come URL del sito Web. Nell'attività seguente, ad esempio, viene usato un certificato autofirmato in cui il nome comune è sslexample.cloudapp.net.
A questo punto, è necessario includere le informazioni sul certificato nei file di definizione e configurazione del servizio.
Passaggio 2: Modificare i file di definizione e configurazione del servizio
L'applicazione deve essere configurata per utilizzare il certificato ed è necessario aggiungere un endpoint HTTPS. Di conseguenza, è necessario aggiornare i file di definizione e configurazione del servizio.
Nell'ambiente di sviluppo aprire il file di definizione del servizio (CSDEF), aggiungere una sezione Certificates all'interno della sezione WebRole e includere le informazioni seguenti relative al certificato (e ai certificati intermedi):
<WebRole name="CertificateTesting" vmsize="Small"> ... <Certificates> <Certificate name="SampleCertificate" storeLocation="LocalMachine" storeName="My" permissionLevel="limitedOrElevated" /> <!-- IMPORTANT! Unless your certificate is either self-signed or signed directly by the CA root, you must include all the intermediate certificates here. You must list them here, even if they are not bound to any endpoints. Failing to list any of the intermediate certificates may cause hard-to-reproduce interoperability problems on some clients.--> <Certificate name="CAForSampleCertificate" storeLocation="LocalMachine" storeName="CA" permissionLevel="limitedOrElevated" /> </Certificates> ... </WebRole>
Nella sezione Certificates sono definiti il nome del certificato, il relativo percorso e il nome dell'archivio in cui è situato.
Le autorizzazioni (attributo
permissionLevel
) possono essere impostate su uno dei seguenti valori:Valore di autorizzazione Descrizione limitedOrElevated (Predefinito) Tutti i processi di ruolo possono accedere alla chiave privata. elevato Solo i processi con autorizzazioni elevate possono accedere alla chiave privata. Nel file csdef aggiungere un elemento InputEndpoint all'interno della sezione Endpoints per abilitare HTTPS:
<WebRole name="CertificateTesting" vmsize="Small"> ... <Endpoints> <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="SampleCertificate" /> </Endpoints> ... </WebRole>
Nel file di definizione del servizio aggiungere un elemento Binding all'interno della sezione Sites. Questo elemento aggiunge un'associazione HTTPS per il mapping dell'endpoint al sito:
<WebRole name="CertificateTesting" vmsize="Small"> ... <Sites> <Site name="Web"> <Bindings> <Binding name="HttpsIn" endpointName="HttpsIn" /> </Bindings> </Site> </Sites> ... </WebRole>
Tutte le modifiche necessarie al file di definizione del servizio sono state completate, ma ora è necessario aggiungere le informazioni del certificato al file di configurazione del servizio.
Nel file di configurazione del servizio (CSCFG), ServiceConfiguration.Cloud.cscfg, aggiungere in Certificates un valore corrispondente al proprio certificato. L'esempio di codice seguente contiene i dettagli della sezione Certificates, fatta eccezione per il valore dell'identificazione personale.
<Role name="Deployment"> ... <Certificates> <Certificate name="SampleCertificate" thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff" thumbprintAlgorithm="sha1" /> <Certificate name="CAForSampleCertificate" thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc" thumbprintAlgorithm="sha1" /> </Certificates> ... </Role>
Questo esempio usa sha1 come algoritmo di identificazione personale. Specificare il valore appropriato per l'algoritmo di identificazione personale del certificato in uso.
Ora che i file di definizione e configurazione del servizio sono stati aggiornati, creare il pacchetto della distribuzione per il caricamento in Azure. Se si usa cspack, non usare il flag /generateConfigurationFile, poiché questo sovrascrive le informazioni del certificato inserite.
Passaggio 3: Caricare un certificato
Connettersi al portale di Azure e...
Nella sezione Tutte le risorse del portale selezionare il servizio cloud.
Seleziona Certificati.
Selezionare Carica nella parte superiore dell'area dei certificati.
Specificare il File e la Password, quindi fare clic su Carica nella parte inferiore dell'area di immissione dei dati.
Passaggio 4: Connettersi all'istanza del ruolo usando HTTPS
Ora che la distribuzione è in esecuzione in Azure, è possibile connettersi a questa usando HTTPS.
Fare clic sull'URL del sito per aprire il Web browser.
Nel Web browser modificare il collegamento per usare https invece di http, quindi accedere alla pagina.
Nota
Se si usa un certificato autofirmato, quando si passa a un endpoint HTTPS con il certificato autofirmato associato, è possibile che nel browser venga visualizzato un errore del certificato. L'uso di un certificato firmato da un'Autorità di certificazione attendibile eliminerà il problema. Nel frattempo l'errore può essere ignorato. Un'altra opzione consiste nell'aggiungere il certificato autofirmato nell'archivio certificati dell'Autorità di certificazione attendibile dell'utente.
Suggerimento
Se si desidera usare TLS per una distribuzione di staging anziché di produzione, è necessario innanzitutto determinare l'URL usato per la distribuzione di staging. Una volta distribuito il servizio cloud, l'URL dell'ambiente di gestione temporanea è determinato dal GUID ID distribuzione nel formato seguente:
https://deployment-id.cloudapp.net/
Creare un certificato con il nome comune (CN) uguale all'URL basato su GUID, ad esempio,328187776e774ceda8fc57609d404462.cloudapp.net. Usare il portale per aggiungere il certificato al servizio cloud di gestione temporanea. Aggiungere le informazioni del certificato ai file CSDEF e CSCFG, ricreare il pacchetto dell'applicazione e aggiornare la distribuzione di gestione temporanea per usare il nuovo pacchetto.
Passaggi successivi
- Configurazione generale del servizio cloud.
- Procedura distribuire un servizio cloud.
- Configurare un nome di dominio personalizzato.
- Gestire il servizio cloud.