HTTPS-communicatie inschakelen in Azure Cloud Services (uitgebreide ondersteuning)
Artikel
Communicatie met Microsoft Azure Cloud Services (uitgebreide ondersteuning) wordt uitgevoerd met behulp van het Https-protocol (Hypertext Transfer Protocol Secure). In dit artikel wordt beschreven hoe u HTTPS-communicatie inschakelt voor Cloud Services (uitgebreide ondersteuning).
De algemene stappen voor het implementeren van een Cloud Services-project (uitgebreide ondersteuning) in Azure zijn als volgt:
Bereid uw certificaat voor.
Configureer uw project.
Pakket het projectbestand in de servicedefinitiebestanden (.csdef), serviceconfiguratiebestanden (.cscfg) en servicepakketbestanden (.cspkg) van uw cloudservice.
Wijzig indien nodig de configuratie van de cloudservicesresource (uitgebreide ondersteuning). U kunt bijvoorbeeld een van de volgende wijzigingen aanbrengen:
Werk de pakket-URL bij.
Configureer de URL-instelling.
Werk de instelling voor geheimen van het besturingssysteem bij.
Implementeer en werk het nieuwe project bij in Azure.
Notitie
Het project kan worden geïmplementeerd via verschillende methoden, zoals met behulp van de volgende hulpprogramma's:
Een hulpprogramma voor continue integratie en continue levering (CI/CD), zoals Azure DevOps
Ongeacht de implementatiemethode zijn de algemene implementatiestappen hetzelfde.
De eerste twee van deze stappen zijn nodig voor alle implementatiemethoden. Deze stappen worden besproken in de sectie Codewijzigingen . De resterende stappen zijn ook belangrijk, maar vereisen niet altijd handmatige tussenkomst van de gebruiker. De stappen kunnen bijvoorbeeld automatisch worden uitgevoerd door een hulpprogramma zoals Visual Studio. De laatste drie van deze stappen worden besproken in de sectie Configuratiewijzigingen .
Codewijzigingen
Voer de volgende stappen uit om de codewijzigingen aan te brengen om uw certificaat voor te bereiden en uw project te configureren:
Noteer de vingerafdruk van het certificaat (een hexadecimale tekenreeks van 40 cijfers).
Voeg in het serviceconfiguratiebestand (.cscfg) van uw project de vingerafdruk van het certificaat toe aan de rol waarin u het certificaat wilt gebruiken. Als u bijvoorbeeld het certificaat als SSL-certificaat wilt gebruiken om te communiceren met een WebRole, kunt u XML-code toevoegen die lijkt op het volgende fragment als WebRole1 het eerste onderliggende element van het hoofdelement ServiceConfiguration :
U kunt de naam van het certificaat aanpassen, maar moet overeenkomen met de certificaatnaam die wordt gebruikt in het bestand met de servicedefinitie (.csdef).
Voeg in het bestand met de servicedefinitie (.csdef) de volgende elementen toe.
Bovenliggend XPath
Elementen die moeten worden toegevoegd
Kenmerken die moeten worden gebruikt
/ServiceDefinition/WebRole/Sites/Site/Bindings
Binding
name, endpointName
/ServiceDefinition/WebRole/Endpoints
InputEndpoint
naam, protocol, poort, certificaat
/ServiceDefinition/WebRole
Certificates/Certificate
name, storeLocation, storeName, permissionLevel
Het Certificates element moet direct na de afsluitende Endpoints tag worden toegevoegd. Het bevat geen kenmerken. Het bevat alleen onderliggende Certificate elementen.
Uw servicedefinitiebestand kan bijvoorbeeld lijken op de volgende XML-code:
In dit voorbeeld wordt het servicedefinitiebestand gewijzigd om een invoereindpunt HttpsIn voor het HTTPS-protocol te binden op poort 443. Het gebruikt het Certificate1 certificaat voor een archief met een naam en My een locatie voor LocalMachine slechts een beperkt of verhoogd machtigingsniveau. De certificaatnamen in de InputEndpoint en Certificate elementen komen overeen met elkaar. Ze komen ook overeen met de certificaatnaam die is gebruikt in het serviceconfiguratiebestand (.cscfg) uit de vorige stap.
Configuratiewijzigingen
Instructies voor het wijzigen van uw cloudserviceconfiguratie verschillen afhankelijk van de wijze waarop uw cloudservice is geïmplementeerd. Deze instructies worden weergegeven op de volgende tabbladen. Elk tabblad vertegenwoordigt een andere implementatiemethode.
Upload het gegenereerde servicepakket (<project-name.cspkg>) en cloudserviceconfiguratiebestanden (ServiceConfiguration.Cloud.cscfg) naar een opslagaccountcontainer voor uw cloudservice.
Notitie
U moet ook het servicedefinitiebestand (ServiceDefinition.csdef) uploaden met behulp van hetzelfde proces dat wordt beschreven voor de andere twee bestanden.
Genereer een SAS-URL (Shared Access Signature) voor elk van de geüploade bestanden.
Ga in Azure Portal terug naar de pagina Overzicht van uw cloudservice en selecteer Vervolgens Bijwerken.
Breng op de pagina Cloudservice bijwerken de volgende wijzigingen aan op het tabblad Basisbeginselen :
Selecteer in het veld Locatie van pakket/configuratie/servicedefinitie de optie Uit blob.
Voer in het veld Een pakket uploaden (.cspkg, .zip) de volgende stappen uit:
Selecteer de koppeling Bladeren .
Selecteer het opslagaccount en de container waarnaar u bestanden hebt geüpload.
Selecteer op de containerpagina het bijbehorende bestand (in dit geval project-name.cspkg>) en selecteer vervolgens de knop Selecteren.<
Voor het veld Een configuratie (.cscfg) uploaden (en ServiceConfiguration.Cloud.cscfg-bestand ), herhaalt u de subprocedure die in de vorige stap is beschreven.
Herhaal de subprocedure voor het veld Upload a service definition (.csdef) (en het bestand ServiceDefinition.csdef ).
Selecteer het tabblad Configuration (Configuratie).
Selecteer in het veld Sleutelkluis de sleutelkluis waarin u het certificaat hebt geüpload (eerder in de sectie Codewijzigingen ). Nadat het certificaat is gevonden in de geselecteerde sleutelkluis, wordt in het vermelde certificaat de status Gevonden weergegeven.
Als u het zojuist geconfigureerde project wilt implementeren, selecteert u de knop Bijwerken .
Zie Een cloudservice implementeren (uitgebreide ondersteuning) met behulp van Azure PowerShell voordat u verdergaat. Volg vervolgens deze stappen om de configuratiewijzigingen aan te brengen via een PowerShell-script:
Upload het gegenereerde servicepakketbestand (<project-name.cspkg>) naar een opslagaccountcontainer voor uw cloudservice.
Notitie
Ondanks wat in de instructies wordt vermeld, hoeft u het bestand met de cloudserviceconfiguratie (ServiceConfiguration.Cloud.cscfg) niet te uploaden. Alleen het servicepakketbestand moet hier worden geüpload.
Genereer een SAS-URL (Shared Access Signature) voor het geüploade servicepakketbestand.
Vervang in het volgende PowerShell-script de tijdelijke aanduidingen aan het begin van het script door de werkelijke waarden voor elke variabele en voer vervolgens het script uit om uw cloudservice bij te werken:
Zie Een cloudservice (uitgebreide ondersteuning) implementeren met ARM-sjablonen voordat u verdergaat. Volg vervolgens deze stappen om uw ARM-sjabloon te configureren:
Upload het gegenereerde servicepakket (<project-name.cspkg>) en cloudserviceconfiguratiebestanden (ServiceConfiguration.Cloud.cscfg) naar een opslagaccountcontainer voor uw cloudservice.
Genereer een SAS-URL (Shared Access Signature) voor elk van de geüploade bestanden.
Haal de volgende waarden op van de sleutelkluiscertificaatpagina in Azure Portal:
Sleutelkluiscertificaat-URL
Abonnements-id
Naam van de resourcegroep waarin de sleutelkluis is geïmplementeerd
Servicenaam voor de sleutelkluis
Zoek de osProfile eigenschap in uw oorspronkelijke ARM-sjabloon voor de cloudservice. Als het oorspronkelijke cloudserviceproject alleen HTTP-communicatie ondersteunt, is de osProfile eigenschap leeg ("osProfile": {}). Als u wilt dat de cloudservice het juiste certificaat ophaalt uit de juiste sleutelkluis, geeft u op welke sleutelkluis u wilt gebruiken in de ARM-sjabloon. U kunt een parameter gebruiken om deze waarde weer te geven. U kunt de waarde ook in de ARM-sjabloon coderen, zoals wordt weergegeven in het volgende voorbeeld:
In de JSON-tekst van de ARM-sjabloon maakt de id waarde in de sourceVault parameter deel uit van de URL van de key vault-pagina in Azure Portal. De certificateUrl waarde is de sleutelkluiscertificaat-URL die u eerder hebt gevonden. De tekstindelingen voor deze waarden worden weergegeven in de volgende tabel.
Implementeer uw bijgewerkte ARM-sjabloon met nieuwe parameters, zoals het PAKKET-SAS-token, het SAS-configuratietoken en meer. Als u wilt zien hoe u deze parameters declareert en opgeeft, kunt u een voorbeeld van een ARM-sjabloonbestand en een voorbeeld van een ARM-sjabloonparametersbestand bekijken. Wacht vervolgens tot de implementatie is voltooid.
Notitie
Als er een foutbericht wordt weergegeven dat het openbare IP-adres wordt gebruikt, verwijdert u het openbare IP-adres uit het serviceconfiguratiebestand (.cscfg) en het parameterbestand van de ARM-sjabloon. Verwijder de declaratie van het openbare IP-adres niet uit het ARM-sjabloonbestand zelf.
Zie Cloud Services implementeren (uitgebreide ondersteuning) met behulp van de Azure SDK voordat u verdergaat.
In deze sectie wordt beschreven hoe u de Azure SDK en C# gebruikt om de juiste configuratiewijzigingen aan te brengen. Als u de SDK wilt gebruiken om het cloudserviceproject te implementeren en de gerelateerde configuratie te wijzigen, moet u een toepassing registreren in Microsoft Entra-id. Als u de registratie wilt uitvoeren, raadpleegt u de portal gebruiken om een Microsoft Entra-toepassing en service-principal te maken die toegang hebben tot het artikel over resources . De volgende tabel bevat een overzicht van de specifieke stappen die moeten worden uitgevoerd en de bijbehorende subsectie die in dat artikel moet worden gelezen.
Stap
Koppeling naar subsectie
Uw abonnement toewijzen aan de rol van eigenaar voor uw toepassing
Configureer het toegangsbeleid voor de sleutelkluis en geef toestemming aan uw toepassing (van ten minste leesniveau) om toegang te krijgen tot het certificaat
Upload het gegenereerde servicepakketbestand (<project-name.cspkg>) naar een opslagaccountcontainer voor uw cloudservice.
Notitie
Ondanks wat in de instructies wordt vermeld, hoeft u het bestand met de cloudserviceconfiguratie (ServiceConfiguration.Cloud.cscfg) niet te uploaden. Alleen het servicepakketbestand moet hier worden geüpload.
Genereer een SAS-URL (Shared Access Signature) voor het geüploade servicepakketbestand.
Haal de volgende waarden op van de sleutelkluiscertificaatpagina in Azure Portal:
Sleutelkluiscertificaat-URL
Abonnements-id
Naam van de resourcegroep waarin de sleutelkluis is geïmplementeerd
Servicenaam voor de sleutelkluis
Download het voorbeeldproject (een gecomprimeerd archiefbestand) en pak de inhoud ervan uit.
Open het bestand SDKSample\CreateCloudService\CreateCloudService\LoginHelper.cs in een teksteditor. Overschrijf in de InitializeServiceClient methode respectievelijk de waarden van de tenantId, clientIden clientCredentials tekenreeksvariabelen met de waarden voor de tenant-id, de toepassings-id en het toepassingsgeheim. Deze waarden zijn de waarden die u hebt gekopieerd toen u uw toepassing registreerde.
Open het bestand SDKSample\CreateCloudService\CreateCloudService\Program.cs in een teksteditor. In de Main methode overschrijft u enkele geïnitialiseerde waarden van de variabelen die aan het begin van de methode zijn gedeclareerd. In de volgende tabel ziet u de namen van variabelen en de waarden die u hiervoor moet gebruiken.
Variabelenaam
Nieuwe waarde
m_subId
De id van het abonnement dat de cloudservice bevat
csrgName
De naam van de resourcegroep die de cloudservice bevat
csName
De naam van de cloudserviceresource
kvrgName
De naam van de resourcegroep die de sleutelkluisresource bevat
kvName
De naam van de sleutelkluisresource
kvsubid
De id van het abonnement dat de sleutelkluis bevat (dit kan verschillen van de abonnements-id van de cloudservice)
secretidentifier
De URL van het sleutelkluiscertificaat
filename
Het lokale pad naar uw serviceconfiguratiebestand (ServiceConfiguration.Cloud.cscfg)
packageurl
De SAS-URL voor het servicepakketbestand (project-name.cspkg>)<
Klik in het deelvenster Visual Studio Solution Explorer met de rechtermuisknop op het projectknooppunt en selecteer NuGet-pakketten beheren. Zoek, selecteer en installeer de volgende pakketten op het tabblad Bladeren :
Microsoft.Azure.Management.ResourceManager
Microsoft.Azure.Management.Compute
Microsoft.Azure.Management.Storage
Azure.Identity
Microsoft.Rest.ClientRuntime.Azure.Authentication
Voer het project uit en wacht tot berichten worden weergegeven in het deelvenster Uitvoer . Als in het deelvenster 'afsluiten met code 0' wordt weergegeven, werkt de update en implementatie goed. Als 'afsluiten met code 1' wordt weergegeven, moet u mogelijk controleren op foutberichten om eventuele problemen te controleren.
In Visual Studio moet u twee configuratiewijzigingen aanbrengen. U stelt uw serviceconfiguratie zo in dat de lokale context is afgestemd op de cloudcontext en vervolgens geeft u op waar uw sleutelkluis zich bevindt.
Kopieer voor de serviceconfiguratie de inhoud van de cloudcontext (het bestand ServiceConfiguration.Cloud.cscfg ) en plak deze in de lokale context (het bestand ServiceConfiguration.Local.cscfg ). Hebt u een andere configuratie of hebt u het lokale configuratiebestand nog nodig voor ander gebruik? Als een van beide voorwaarden waar is, moet u de certificate elementen uit de bestaande lokale context behouden.
Klik in het deelvenster Visual Studio Solution Explorer met de rechtermuisknop op het projectknooppunt en selecteer Publiceren. Ga door de wizard Publiceren Azure-toepassing totdat u bij het tabblad Instellingen bent. Stel op dat tabblad het sleutelkluisveld in op de locatie waar uw sleutelkluis wordt opgeslagen. Selecteer tot slot de knop Publiceren en wacht totdat de implementatie is voltooid.
Nadat u de configuratiewijzigingen hebt aangebracht, kunnen klanten communiceren met uw cloudserviceswebsite met behulp van het HTTPS-protocol. Als uw certificaat zelfondertekend is, kan de browser een waarschuwing melden dat het certificaat niet beveiligd is, maar de browser de verbinding niet blokkeert.