Dela via


Konfigurera TLS för ett program i Azure

Viktigt!

Cloud Services (klassisk) är nu inaktuellt för alla kunder från och med den 1 september 2024. Alla befintliga distributioner som körs stoppas och stängs av av Microsoft och data försvinner permanent från och med oktober 2024. 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.

Kommentar

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

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

Läs Skapa och distribuera en Azure Cloud Service (klassisk) 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 få ett TLS/SSL-certifikat signerat av en certifikatutfärdare (CA), en betrodd partner 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 personlig 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ännamnet 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änstdefinitions- och tjänstkonfigurationsfilerna uppdateras.

  1. I utvecklingsmiljön öppnar du tjänstdefinitionsfilen (CSDEF), lägger till ett certifikatavsnitt i avsnittet WebRole och tar med 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.
    hög 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. I tjänstdefinitionsfilen lägger du till ett bindningselement i avsnittet Webbplatser . 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 är slutförda, 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 du har uppdaterat tjänstdefinitions- och tjänstkonfigurationsfilerna paketerar du distributionen för uppladdning till Azure. Om du använder cspack ska du inte använda flaggan /generateConfigurationFile eftersom den skriver över certifikatinformationen som du har infogat.

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. Välj Intyg.

    Klicka på certifikatikonen

  3. Välj Ladda upp överst i certifikatområdet.

    Klicka på menyalternativet Ladda upp

  4. Ange fil, lösenord och välj sedan 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. Välj webbplats-URL:en för att öppna webbläsaren.

  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.

    Kommentar

    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. Att använda ett certifikat som signerats av en betrodd certifikatutfärdare eliminerar 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.)

    Förhandsgranskning av webbplats

    Dricks

    Om du vill använda TLS för en mellanlagringsdistribution i stället för en produktionsdistribution måste du först fastställa den URL 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 den mellanlagrade distributionen så att det nya paketet används.

Nästa steg