Esporta (0) Stampa
Espandi tutto

Configurare un certificato SSL in un endpoint HTTPS

Aggiornamento: febbraio 2014

Per aggiungere un endpoint HTTPS a un ruolo nel servizio di Windows Azure e associarlo a un certificato SSL, è necessario effettuare le operazioni seguenti:

  1. Ottenere un certificato SSL da un'autorità di certificazione. Per ulteriori informazioni, vedere Ottenere un certificato SSL.

  2. Aggiungere il certificato all'archivio certificati per il servizio ospitato. Per ulteriori informazioni, vedere la sezione Caricare il certificato in Windows Azure.

  3. Aggiungere l'identificazione digitale del certificato al file di configurazione del servizio. Per ulteriori informazioni, vedere la sezione Aggiungere l'identificazione digitale del certificato al file di configurazione del servizio.

  4. Aggiornare il file di definizione del servizio per identificare il certificato per il servizio ospitato. Per ulteriori informazioni, vedere la sezione Aggiungere il certificato al file di definizione del servizio.

  5. Configurare l'endpoint HTTPS nel file di definizione del servizio e associarlo al certificato. Per ulteriori informazioni, vedere la sezione Configurare l'endpoint HTTPS.

  6. Configurare un record CNAME per il nome di dominio per il quale viene emesso il certificato SSL per il reindirizzamento del traffico al servizio. Per ulteriori informazioni sulla configurazione di CNAME, vedere la pagina relativa alla configurazione di un nome di dominio personalizzato per un servizio cloud di Windows Azure.

Durante il test dell'endpoint HTTPS nell'ambiente di sviluppo, qualsiasi autenticazione viene eseguita tramite un certificato autofirmato fornito per 127.0.0.1. Per ulteriori informazioni, vedere la sezione intitolata Test di un endpoint HTTPS nell'emulatore di calcolo più avanti in questo argomento.

Un certificato SSL utilizzato per la protezione di un endpoint HTTPS in Windows Azure deve disporre delle caratteristiche seguenti:

  • Nel certificato deve essere contenuta una chiave privata.

  • Lo scopo del certificato deve essere l'autenticazione del server.

  • Il nome soggetto del certificato deve corrispondere al nome di dominio utilizzato per accedere al servizio.

  • Le dimensioni minime della chiave di crittografia richieste sono di 2048 bit.

noteNota
Se si utilizzano gli strumenti di Windows Azure per Microsoft Visual Studio per sviluppare il servizio, è possibile configurare un endpoint HTTPS utilizzando le pagine delle proprietà per il ruolo.

In Windows Azure è disponibile un archivio certificati sicuro in cui è possibile gestire i certificati per il servizio ospitato. Quando si associa un certificato al servizio e si carica il certificato nell'archivio, tramite Windows Azure il certificato viene distribuito automaticamente alle macchine virtuali in cui sono in esecuzione le istanze del ruolo. Per ulteriori informazioni sull'archivio certificati, vedere Gestione certificati.

Per caricare il certificato nell'archivio certificati, attenersi alla procedura riportata in Aggiungere un nuovo certificato all'archivio certificati.

Tramite l'identificazione digitale del certificato nel file di configurazione del servizio il nome logico del certificato specificato nel file di definizione del servizio viene abbinato al certificato nell'archivio. Con l'inclusione dell'identificazione digitale nel file di configurazione del servizio, i dati del certificato vengono mantenuti separati dal pacchetto del servizio. In questo modo l'utente o il responsabile IT può aggiornare il certificato evitando la ridistribuzione del servizio.

Per elencare il certificato e la relativa identificazione digitale nel file di configurazione del servizio, modificare il file di configurazione e aggiungere la raccolta Certificates alla voce per il ruolo in uso. Aggiungere un elemento Certificate alla raccolta Certificates e specificare il nome logico per il certificato. Assicurarsi di utilizzare lo stesso nome specificato nel file di definizione del servizio. Infine, specificare l'identificazione digitale del certificato e l'algoritmo utilizzato per generare l'identificazione digitale, come mostrato in questo esempio:


<ServiceConfiguration serviceName="MyService">
  <Role name=" MyWorkerRole">
    <Instances count="5" />    
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MySSLCert" thumbprint="8420C0773626D5137A820156EB5BD9D6FDB9BEE9" thumbprintAlgorithm="sha1"/>
    </Certificates>  
  </Role>
</ServiceConfiguration>

Per ulteriori informazioni su come ottenere l'identificazione digitale di un certificato, vedere la sezione relativa alla creazione di un certificato x.509 v3 di Creare un certificato di servizio per Windows Azure.

Per associare un certificato a un endpoint HTTPS, è necessario specificare un nome logico per il certificato che verrà utilizzato per identificarlo nel servizio. È inoltre necessario indicare il percorso di archiviazione del certificato nella macchina virtuale in cui è in esecuzione un'istanza del ruolo.

Nel file di definizione del servizio aggiungere l'elemento Certificates alla definizione del ruolo. Nella raccolta Certificates aggiungere una voce per il certificato, come mostrato in questo esempio:


  <WorkerRole name="MyWorkerRole" vmsize="Small">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      . . .
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

In questo esempio, il percorso dell'archivio è impostato su LocalMachine e il nome dell'archivio è impostato su My. Questi due attributi indicano il percorso nella macchina virtuale in cui verrà installato il certificato (identificato qui come MySSLCert).

È possibile selezionare qualsiasi nome desiderato per l'attributo name del certificato. Questo nome verrà utilizzato solo per fare riferimento al certificato nella definizione per l'endpoint HTTPS e nel file di configurazione del servizio.

Per aggiungere un endpoint HTTPS al ruolo, modificare il file di definizione del servizio e aggiungere un elemento InputEndpoint alla raccolta Endpoints per il ruolo. Specificare un nome per l'endpoint, il protocollo (HTTPS) e la porta. Successivamente, specificare il nome logico per il certificato definito nella raccolta Certificates del ruolo.

Nella procedura seguente viene mostrata l'aggiunta di un endpoint di input HTTP per un ruolo Web in ascolto sulla porta 80 e viene inoltre definito un endpoint HTTPS in ascolto sulla porta 443:

  1. Aprire il file ServiceDefinition.csdef per il servizio nell'editor di testo.

  2. Aggiungere l'elemento della raccolta Certificates contenente un elemento Certificate al ruolo protetto tramite SSL. Impostare l'attributo del nome sul nome del certificato. Impostare gli attributi storeName e storeLocation per specificare il percorso del certificato nella macchina virtuale.

        
    <Certificates>
       <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    
    
  3. Aggiungere l'elemento della raccolta Endpoints contenente gli elementi InputEndpoint al ruolo protetto tramite SSL. Impostare l'attributo certificate dell'endpoint di input HttpsIn per la corrispondenza del nome del certificato specificato nella raccolta certificati.

       
    <Endpoints>
       <InputEndpoint name="HttpIn" protocol="http" port="80" />
       <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    
    
  4. Salvare il file.

La definizione del servizio completata sarà simile all'esempio riportato di seguito.


<ServiceDefinition name="MyService">
  <WorkerRole name="MyWorkerRole">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

Per impostazione predefinita, l'emulatore di calcolo si basa su un certificato autofirmato per l'indirizzo IP 127.0.0.1 che corrisponde a localhost. Se si è verificato un problema durante l'installazione o la configurazione del certificato configurato nei passaggi precedenti, per impostazione predefinita nell'emulatore di calcolo l'autenticazione verrà eseguita utilizzando questo certificato autofirmato anziché il certificato personalizzato. Se l'impostazione predefinita della distribuzione è l'utilizzo di un certificato SSL per 127.0.0.1 anche se è stato definito un certificato diverso, verificare che il certificato personalizzato sia privo di errori e sia installato correttamente.

Per impostazione predefinita, il certificato autofirmato utilizzato dall'emulatore di calcolo non ha una radice attendibile. Quando si passa a HTTPS, viene generato un errore di certificato, a meno che il certificato non venga aggiunto all'archivio Autorità di certificazione radice disponibile nel computer locale. È possibile ignorare l'errore o eliminarlo aggiungendo il certificato alla radice attendibile.

Quando si esegue il servizio ospitato nell'emulatore di calcolo di Windows Azure, la porta SSL potrebbe essere impostata su un valore diverso da 443 (spesso 444 o 445). Se la porta 443 specificata per un endpoint HTTPS non è disponibile, il numero di porta verrà automaticamente aumentato fino a trovare una porta libera.

Per utilizzare la porta 443, è necessario arrestare l'applicazione o il sito Web in cui viene utilizzata la porta, chiudere e riavviare l'emulatore di calcolo per ricaricare l'elenco di porte disponibili. L'arresto e il riavvio dell'emulatore non comportano la ricarica dell'elenco di porte disponibili.

Per determinare se la porta 443 è in uso, è possibile aprire un prompt dei comandi e utilizzare il comando NETSTAT. Per ulteriori informazioni sul comando NETSTAT, vedere Netstat.

Se non si dispone di un certificato emesso da un'autorità di certificazione, è possibile generare un certificato autofirmato da utilizzare con il servizio di Windows Azure.

noteNota
Questo certificato autofirmato è diverso da quello utilizzato dall'ambiente di sviluppo. Il certificato in questione viene fornito automaticamente e viene utilizzato per l'autenticazione solo nell'ambiente di sviluppo.

Quando si passa a un endpoint HTTPS associato a un certificato autofirmato in Windows Azure, verrà visualizzato un errore di certificato nel browser. Questo problema viene eliminato utilizzando un certificato firmato da un'autorità di certificazione; nel frattempo, è possibile ignorare l'errore.

Vedere anche

Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft