Konfigurera TLS för ett program i Azure

Viktigt

Cloud Services (klassisk) är nu inaktuell för nya kunder och kommer att dras tillbaka den 31 augusti 2024 för alla kunder. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).

TLS (Transport Layer Security), som tidigare kallades SSL-kryptering (Secure Socket Layer), är den vanligaste metoden för att skydda data som skickas via Internet. Den här vanliga uppgiften beskriver hur du anger en HTTPS-slutpunkt för en webbroll och hur du laddar upp ett TLS/SSL-certifikat för att skydda ditt program.

Anteckning

Procedurerna i den här uppgiften gäller för Azure Cloud Services. Se detta för App Services.

Den här uppgiften använder en produktionsdistribution. Information om hur du använder en mellanlagringsdistribution finns i slutet av det här avsnittet.

Läs det här först om du ännu inte har skapat en molntjänst.

Steg 1: Hämta ett TLS/SSL-certifikat

För att konfigurera TLS för ett program måste du först skaffa ett TLS/SSL-certifikat som har signerats av en certifikatutfärdare (CA), en betrodd tredje part som utfärdar certifikat för detta ändamål. Om du inte redan har ett måste du skaffa ett från ett företag som säljer TLS/SSL-certifikat.

Certifikatet måste uppfylla följande krav för TLS/SSL-certifikat i Azure:

  • Certifikatet måste innehålla en offentlig nyckel.
  • Certifikatet måste skapas för nyckelutbyte, som kan exporteras till en Fil för personligt informationsutbyte (.pfx).
  • Certifikatets ämnesnamn måste matcha domänen som används för att komma åt molntjänsten. Du kan inte hämta ett TLS/SSL-certifikat från en certifikatutfärdare (CA) för den cloudapp.net domänen. Du måste skaffa ett anpassat domännamn som ska användas vid åtkomst till din tjänst. När du begär ett certifikat från en certifikatutfärdare måste certifikatets ämnesnamn matcha det anpassade domännamn som används för att komma åt ditt program. Om ditt anpassade domännamn till exempel är contoso.com begär du ett certifikat från certifikatutfärdare för *.contoso.com eller www.contoso.com.
  • Certifikatet måste använda minst 2048-bitars kryptering.

I testsyfte kan du skapa och använda ett självsignerat certifikat. Ett självsignerat certifikat autentiseras inte via en certifikatutfärdare och kan använda cloudapp.net domän som webbplats-URL. Följande uppgift använder till exempel ett självsignerat certifikat där det gemensamma namnet (CN) som används i certifikatet är sslexample.cloudapp.net.

Därefter måste du inkludera information om certifikatet i tjänstdefinitionen och tjänstkonfigurationsfilerna.

Steg 2: Ändra tjänstdefinitionen och konfigurationsfilerna

Programmet måste konfigureras för att använda certifikatet och en HTTPS-slutpunkt måste läggas till. Därför måste tjänstdefinitionen och tjänstkonfigurationsfilerna uppdateras.

  1. Öppna tjänstdefinitionsfilen (CSDEF) i utvecklingsmiljön, lägg till ett certifikatavsnitt i avsnittet WebRole och inkludera följande information om certifikatet (och mellanliggande certifikat):

    <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>
    

    I avsnittet Certifikat definieras namnet på vårt certifikat, dess plats och namnet på det arkiv där det finns.

    Behörigheter (permissionLevel attribut) kan anges till något av följande värden:

    Behörighetsvärde Beskrivning
    limitedOrElevated (Standard) Alla rollprocesser har åtkomst till den privata nyckeln.
    Förhöjda Endast förhöjda processer kan komma åt den privata nyckeln.
  2. I tjänstdefinitionsfilen lägger du till ett InputEndpoint-element i avsnittet Slutpunkter för att aktivera HTTPS:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Endpoints>
            <InputEndpoint name="HttpsIn" protocol="https" port="443"
                certificate="SampleCertificate" />
        </Endpoints>
    ...
    </WebRole>
    
  3. Lägg till ett bindningselement i avsnittet Webbplatser i din tjänstdefinitionsfil . Det här elementet lägger till en HTTPS-bindning för att mappa slutpunkten till din webbplats:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Sites>
            <Site name="Web">
                <Bindings>
                    <Binding name="HttpsIn" endpointName="HttpsIn" />
                </Bindings>
            </Site>
        </Sites>
    ...
    </WebRole>
    

    Alla nödvändiga ändringar i tjänstdefinitionsfilen har slutförts. men du måste fortfarande lägga till certifikatinformationen i tjänstkonfigurationsfilen.

  4. I tjänstkonfigurationsfilen (CSCFG), ServiceConfiguration.Cloud.cscfg, lägger du till ett certifikatvärde med certifikatets värde. Följande kodexempel innehåller information om avsnittet Certifikat , förutom tumavtrycksvärdet.

    <Role name="Deployment">
    ...
        <Certificates>
            <Certificate name="SampleCertificate"
                thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff"
                thumbprintAlgorithm="sha1" />
            <Certificate name="CAForSampleCertificate"
                thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc"
                thumbprintAlgorithm="sha1" />
        </Certificates>
    ...
    </Role>
    

(I det här exemplet används sha1 för tumavtrycksalgoritmen. Ange lämpligt värde för certifikatets tumavtrycksalgoritm.)

Nu när tjänstdefinitionen och tjänstkonfigurationsfilerna har uppdaterats paketerar du distributionen för uppladdning till Azure. Om du använder cspack ska du inte använda flaggan /generateConfigurationFile , eftersom det skriver över certifikatinformationen som du nyss infogade.

Steg 3: Ladda upp ett certifikat

Anslut till Azure Portal och...

  1. I avsnittet Alla resurser i portalen väljer du din molntjänst.

    Publicera din molntjänst

  2. Klicka på Certifikat.

    Klicka på certifikatikonen

  3. Klicka på Ladda upp överst i certifikatområdet.

    Klicka på menyalternativet Ladda upp

  4. Ange filen, lösenordet och klicka sedan på Ladda upp längst ned i datainmatningsområdet.

Steg 4: Anslut till rollinstansen med hjälp av HTTPS

Nu när distributionen är igång i Azure kan du ansluta till den med HTTPS.

  1. Klicka på webbplats-URL:en för att öppna webbläsaren.

    Klicka på webbplats-URL:en

  2. I webbläsaren ändrar du länken så att den använder https i stället för http och besöker sedan sidan.

    Anteckning

    Om du använder ett självsignerat certifikat kan ett certifikatfel visas i webbläsaren när du bläddrar till en HTTPS-slutpunkt som är associerad med det självsignerade certifikatet. Om du använder ett certifikat som signerats av en betrodd certifikatutfärdare eliminerar du det här problemet. Under tiden kan du ignorera felet. (Ett annat alternativ är att lägga till det självsignerade certifikatet i användarens certifikatarkiv för betrodd certifikatutfärdare.)

    Webbplatsförhandsgranskning

    Tips

    Om du vill använda TLS för en mellanlagringsdistribution i stället för en produktionsdistribution måste du först fastställa url:en som används för mellanlagringsdistributionen. När molntjänsten har distribuerats bestäms URL:en till mellanlagringsmiljön av distributions-ID :ts GUID i det här formatet: https://deployment-id.cloudapp.net/

    Skapa ett certifikat med det gemensamma namnet (CN) som är lika med den GUID-baserade URL:en (till exempel 328187776e774ceda8fc57609d404462.cloudapp.net). Använd portalen för att lägga till certifikatet i din mellanlagrade molntjänst. Lägg sedan till certifikatinformationen i CSDEF- och CSCFG-filerna, packa om programmet och uppdatera din mellanlagrade distribution för att använda det nya paketet.

Nästa steg