Delen via


TLS configureren voor een toepassing in Azure

Belangrijk

Cloud Services (klassiek) is vanaf 1 september 2024 afgeschaft voor alle klanten. Bestaande actieve implementaties worden gestopt en afgesloten door Microsoft en de gegevens gaan vanaf oktober 2024 permanant verloren. Nieuwe implementaties moeten gebruikmaken van het nieuwe op Azure Resource Manager gebaseerde implementatiemodel Azure Cloud Services (uitgebreide ondersteuning).

Transport Layer Security (TLS), voorheen SSL-versleuteling (Secure Socket Layer) genoemd, is de meest gebruikte methode voor het beveiligen van gegevens die via internet worden verzonden. Deze algemene taak beschrijft hoe u een HTTPS-eindpunt voor een webrol opgeeft en hoe u een TLS/SSL-certificaat uploadt om uw toepassing te beveiligen.

Notitie

De procedures in deze taak zijn van toepassing op Azure Cloud Services; zie dit voor App Services.

Deze taak maakt gebruik van een productie-implementatie. Aan het einde van dit artikel vindt u informatie over het gebruik van een faseringsimplementatie.

Lees eerst hoe u een Azure Cloud Service (klassiek) maakt en implementeert als u nog geen cloudservice hebt gemaakt.

Stap 1: een TLS/SSL-certificaat ophalen

Als u TLS voor een toepassing wilt configureren, moet u eerst een TLS/SSL-certificaat ophalen dat is ondertekend door een certificeringsinstantie (CA), een vertrouwde partner die certificaten voor dit doel uitgeeft. Als u er nog geen hebt, moet u er een verkrijgen van een bedrijf dat TLS/SSL-certificaten verkoopt.

Het certificaat moet voldoen aan de volgende vereisten voor TLS/SSL-certificaten in Azure:

  • Het certificaat moet een openbare sleutel bevatten.
  • Het certificaat moet worden gemaakt voor sleuteluitwisseling, exporteerbaar naar een PFX-bestand (Personal Information Exchange).
  • De onderwerpnaam van het certificaat moet overeenkomen met het domein dat wordt gebruikt voor toegang tot de cloudservice. U kunt geen TLS/SSL-certificaat verkrijgen van een certificeringsinstantie (CA) voor het cloudapp.net domein. U moet een aangepaste domeinnaam verkrijgen die moet worden gebruikt bij het openen van uw service. Wanneer u een certificaat van een CA aanvraagt, moet de onderwerpnaam van het certificaat overeenkomen met de aangepaste domeinnaam die wordt gebruikt voor toegang tot uw toepassing. Als uw aangepaste domeinnaam bijvoorbeeld contoso.com, vraagt u een certificaat aan bij uw CA voor *.contoso.com of www.contoso.com.
  • Het certificaat moet minimaal 2048-bits versleuteling gebruiken.

Voor testdoeleinden kunt u een zelfondertekend certificaat maken en gebruiken. Een zelfondertekend certificaat wordt niet geverifieerd via een CA en kan het cloudapp.net domein gebruiken als de URL van de website. De volgende taak maakt bijvoorbeeld gebruik van een zelfondertekend certificaat waarin de algemene naam (CN) die in het certificaat wordt gebruikt, wordt sslexample.cloudapp.net.

Vervolgens moet u informatie over het certificaat opnemen in uw servicedefinitie en serviceconfiguratiebestanden.

Stap 2: de servicedefinitie en configuratiebestanden wijzigen

Uw toepassing moet zijn geconfigureerd voor het gebruik van het certificaat en er moet een HTTPS-eindpunt worden toegevoegd. Als gevolg hiervan moeten de servicedefinitie- en serviceconfiguratiebestanden worden bijgewerkt.

  1. Open in uw ontwikkelomgeving het servicedefinitiebestand (CSDEF), voeg een sectie Certificaten toe in de sectie WebRole en neem de volgende informatie op over het certificaat (en tussenliggende certificaten):

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

    De sectie Certificaten definieert de naam van ons certificaat, de locatie en de naam van het archief waar het zich bevindt.

    Machtigingen (permissionLevel kenmerk) kunnen worden ingesteld op een van de volgende waarden:

    Machtigingswaarde Beschrijving
    limitedOrElevated (Standaard) Alle rolprocessen hebben toegang tot de persoonlijke sleutel.
    verheven Alleen processen met verhoogde bevoegdheid hebben toegang tot de persoonlijke sleutel.
  2. Voeg in uw servicedefinitiebestand een InputEndpoint-element toe in de sectie Eindpunten om HTTPS in te schakelen:

    <WebRole name="CertificateTesting" vmsize="Small">
    ...
        <Endpoints>
            <InputEndpoint name="HttpsIn" protocol="https" port="443"
                certificate="SampleCertificate" />
        </Endpoints>
    ...
    </WebRole>
    
  3. Voeg in het servicedefinitiebestand een bindingselement toe in de sectie Sites . Met dit element wordt een HTTPS-binding toegevoegd om het eindpunt toe te wijzen aan uw site:

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

    Alle vereiste wijzigingen in het servicedefinitiebestand zijn voltooid, maar u moet de certificaatgegevens nog steeds toevoegen aan het serviceconfiguratiebestand.

  4. Voeg in uw serviceconfiguratiebestand (CSCFG) ServiceConfiguration.Cloud.cscfg een waarde voor certificaten toe met die van uw certificaat. Het volgende codevoorbeeld bevat details van de sectie Certificaten , met uitzondering van de vingerafdrukwaarde.

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

(In dit voorbeeld wordt sha1 gebruikt voor het vingerafdrukalgoritme. Geef de juiste waarde op voor het vingerafdrukalgoritmen van uw certificaat.)

Nu u de servicedefinitie- en serviceconfiguratiebestanden hebt bijgewerkt, moet u uw implementatie verpakken voor uploaden naar Azure. Als u cspack gebruikt, gebruikt u de vlag /generateConfigurationFile niet, omdat hiermee de certificaatgegevens worden overschreven die u hebt ingevoegd.

Stap 3: Een certificaat uploaden

Verbinding maken met Azure Portal en...

  1. Selecteer uw cloudservice in de sectie Alle resources van de portal.

    Uw cloudservice publiceren

  2. Selecteer Certificaten.

    Klik op het pictogram Certificaten

  3. Selecteer Uploaden boven aan het certificaatgebied.

    Klik op de menuopdracht Uploaden

  4. Geef het bestand, wachtwoord op en selecteer vervolgens Uploaden onderaan het gegevensinvoergebied.

Stap 4: Verbinding maken met het rolexemplaren met behulp van HTTPS

Nu uw implementatie actief is in Azure, kunt u er verbinding mee maken via HTTPS.

  1. Selecteer de site-URL om de webbrowser te openen.

    Klik op de SITE-URL

  2. Wijzig in uw webbrowser de koppeling om https te gebruiken in plaats van http en ga vervolgens naar de pagina.

    Notitie

    Als u een zelfondertekend certificaat gebruikt, ziet u mogelijk een certificaatfout in de browser wanneer u bladert naar een HTTPS-eindpunt dat is gekoppeld aan het zelfondertekende certificaat. Als u een certificaat gebruikt dat is ondertekend door een vertrouwde certificeringsinstantie, wordt dit probleem weggenomen; in de tussentijd kunt u de fout negeren. (Een andere optie is om het zelfondertekende certificaat toe te voegen aan het certificaatarchief van de vertrouwde certificeringsinstantie van de gebruiker.)

    Voorbeeld van site

    Tip

    Als u TLS wilt gebruiken voor een faseringsimplementatie in plaats van een productie-implementatie, moet u eerst de URL bepalen die wordt gebruikt voor de faseringsimplementatie. Zodra uw cloudservice is geïmplementeerd, wordt de URL naar de faseringsomgeving bepaald door de GUID van de implementatie-id in deze indeling: https://deployment-id.cloudapp.net/

    Maak een certificaat met de algemene naam (CN) die gelijk is aan de URL op basis van de GUID (bijvoorbeeld 328187776e774ceda8fc57609d404462.cloudapp.net). Gebruik de portal om het certificaat toe te voegen aan uw gefaseerde cloudservice. Voeg vervolgens de certificaatgegevens toe aan uw CSDEF- en CSCFG-bestanden, verpak uw toepassing opnieuw en werk de gefaseerde implementatie bij om het nieuwe pakket te gebruiken.

Volgende stappen