TLS configureren voor een toepassing in Azure

Belangrijk

Cloud Services (klassiek) is nu afgeschaft voor nieuwe klanten en wordt op 31 augustus 2024 voor alle klanten buiten gebruik gesteld. Nieuwe implementaties moeten gebruikmaken van het nieuwe op Azure Resource Manager gebaseerde implementatiemodel Azure Cloud Services (uitgebreide ondersteuning).

Tls (Transport Layer Security), voorheen bekend als SSL-versleuteling (Secure Socket Layer), is de meest gebruikte methode voor het beveiligen van gegevens die via internet worden verzonden. In deze algemene taak wordt besproken 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. Informatie over het gebruik van een faseringsimplementatie vindt u aan het einde van dit onderwerp.

Lees dit eerst 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 derde partij 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 en kan worden geëxporteerd 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 u kunt gebruiken bij het openen van uw service. Wanneer u een certificaat aanvraagt bij een CA, 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 website-URL. De volgende taak maakt bijvoorbeeld gebruik van een zelfondertekend certificaat waarin de algemene naam (CN) die in het certificaat wordt gebruikt , is 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 het certificaat, de locatie en de naam van het archief waarin het zich bevindt.

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

    Machtigingswaarde Description
    limitedOrElevated (Standaard) Alle rolprocessen hebben toegang tot de persoonlijke sleutel.
    Verhoogde Alleen verhoogde processen hebben toegang tot de persoonlijke sleutel.
  2. Voeg in het 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 vingerafdruk-algoritme van uw certificaat.)

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

Stap 3: Een certificaat uploaden

Verbinding maken met de Azure Portal en...

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

    Uw cloudservice publiceren

  2. Klik op Certificaten.

    Klik op het certificaatpictogram

  3. Klik boven aan het certificaatgebied op Uploaden .

    Klik op het menu-item Uploaden

  4. Geef het bestand en het wachtwoord op en klik vervolgens op Uploaden onder aan het gebied voor gegevensinvoer.

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. Klik op de SITE-URL om de webbrowser te openen.

    Klik op de site-URL

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

    Notitie

    Als u een zelfondertekend certificaat gebruikt en naar een HTTPS-eindpunt bladert dat is gekoppeld aan het zelfondertekende certificaat, ziet u mogelijk een certificaatfout in de browser. Het gebruik van een certificaat dat is ondertekend door een vertrouwde certificeringsinstantie elimineert dit probleem; 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 implementatie-id-GUID 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