Aktivera HTTPS-kommunikation i Azure Cloud Services (utökad support)
Artikel
Kommunikation med Microsoft Azure Cloud Services (utökad support) sker med hjälp av HTTPS-protokollet (Hypertext Transfer Protocol Secure). I den här artikeln beskrivs hur du aktiverar HTTPS-kommunikation för Cloud Services (utökad support).
Ett verktyg för kontinuerlig integrering och kontinuerlig leverans (CI/CD), till exempel Azure DevOps
Oavsett distributionsmetod är de allmänna distributionsstegen desamma.
De två första stegen är nödvändiga för alla distributionsmetoder. De här stegen beskrivs i avsnittet Kodändringar . De återstående stegen är också viktiga, men de kräver inte alltid manuella användaråtgärder. Stegen kan till exempel utföras automatiskt av ett verktyg som Visual Studio. De tre sista stegen beskrivs i avsnittet Konfigurationsändringar .
Kodändringar
Utför följande steg för att göra kodändringarna för att förbereda certifikatet och konfigurera projektet:
Skriv ned tumavtrycket för certifikatet (en 40-siffrig hexadecimal sträng).
I projektets tjänstkonfigurationsfil (.cscfg) lägger du till tumavtrycket för certifikatet till den roll där du vill använda certifikatet. Om du till exempel vill använda certifikatet som SSL-certifikat för att kommunicera med en WebRole kan du lägga till XML-kod som liknar följande kodfragment för WebRole1 som det första underordnade rotelementet ServiceConfiguration :
Elementet Certificates måste läggas till direkt efter den avslutande Endpoints taggen. Den innehåller inga attribut. Den innehåller endast underordnade Certificate element.
Din tjänstdefinitionsfil kan till exempel likna följande XML-kod:
I det här exemplet ändras tjänstdefinitionsfilen för att binda en indataslutpunkt HttpsIn för för HTTPS-protokollet på port 443. Det använder certifikatet Certificate1 för ett arkiv som har ett namn på My och en plats LocalMachine för för bara en begränsad eller förhöjd behörighetsnivå. Certifikatnamnen i elementen InputEndpoint och Certificate matchar varandra. De matchar även certifikatnamnet som användes i tjänstkonfigurationsfilen (.cscfg) från föregående steg.
Konfigurationsändringar
Instruktionerna för att ändra molntjänstkonfigurationen skiljer sig åt beroende på hur molntjänsten distribuerades. Dessa instruktioner visas på följande flikar. Varje flik representerar en annan distributionsmetod.
Ladda upp de genererade tjänstpaketfilerna (<project-name.cspkg>) och cloud service configuration (ServiceConfiguration.Cloud.cscfg) till en lagringskontocontainer för molntjänsten.
Kommentar
Du måste också ladda upp tjänstdefinitionsfilen (ServiceDefinition.csdef) med hjälp av samma process som beskrivs för de andra två filerna.
Generera en URL för signatur för delad åtkomst (SAS) för var och en av de uppladdade filerna.
I Azure Portal går du tillbaka till sidan Översikt för molntjänsten och väljer sedan Uppdatera.
På sidan Uppdatera molntjänst gör du följande ändringar på fliken Grundläggande :
I fältet Paket/konfiguration/tjänstdefinition väljer du Från blob.
I fältet Ladda upp ett paket (.cspkg, .zip) följer du dessa steg:
Välj länken Bläddra .
Välj det lagringskonto och den container som du laddade upp filer till.
På containersidan väljer du motsvarande fil (i det här fallet project-name.cspkg>) och väljer sedan knappen Välj.<
För fältet Ladda upp en konfiguration (.cscfg) (och filen ServiceConfiguration.Cloud.cscfg) upprepar du underproceduren som beskrivs i föregående steg.
För fältet Ladda upp en tjänstdefinition (.csdef) (och filen ServiceDefinition.csdef ) upprepar du underproceduren igen.
Välj fliken Konfiguration.
I fältet Nyckelvalv väljer du det nyckelvalv där du laddade upp certifikatet (tidigare i avsnittet Kodändringar ). När certifikatet hittas i det valda nyckelvalvet visar det angivna certifikatet statusen Hittades.
Om du vill distribuera det nyligen konfigurerade projektet väljer du knappen Uppdatera .
Ladda upp den genererade tjänstpaketfilen (<project-name.cspkg>) till en lagringskontocontainer för din molntjänst.
Kommentar
Trots vad som anges i anvisningarna behöver du inte ladda upp molntjänstkonfigurationsfilen (ServiceConfiguration.Cloud.cscfg). Endast tjänstpaketfilen måste laddas upp här.
Generera en URL för signatur för delad åtkomst (SAS) för den uppladdade tjänstpaketfilen.
I följande PowerShell-skript ersätter du platshållarna i början av skriptet med de faktiska värdena för varje variabel och kör sedan skriptet för att uppdatera molntjänsten:
Ladda upp de genererade tjänstpaketfilerna (<project-name.cspkg>) och cloud service configuration (ServiceConfiguration.Cloud.cscfg) till en lagringskontocontainer för molntjänsten.
Generera en URL för signatur för delad åtkomst (SAS) för var och en av de uppladdade filerna.
Hämta följande värden från nyckelvalvscertifikatsidan i Azure Portal:
URL för Key Vault-certifikat
Prenumerations-ID:t
Namnet på resursgruppen där nyckelvalvet distribueras
Tjänstnamn för nyckelvalvet
Leta reda på osProfile egenskapen i din ursprungliga ARM-mall för molntjänsten. Om det ursprungliga molntjänstprojektet endast stöder HTTP-kommunikation är egenskapen osProfile tom ("osProfile": {}). Om du vill att molntjänsten ska kunna hämta rätt certifikat från rätt nyckelvalv anger du vilket nyckelvalv du vill använda i ARM-mallen. Du kan använda en parameter för att representera det här värdet. Eller så kan du hårdkoda värdet i ARM-mallen, som du ser i följande exempel:
I JSON-texten i ARM-mallen id är värdet i parametern sourceVault en del av URL:en för key vault-sidan i Azure Portal. Värdet certificateUrl är url:en för nyckelvalvets certifikat som du hittade tidigare. Textformaten för dessa värden visas i följande tabell.
Distribuera din uppdaterade ARM-mall som innehåller nya parametrar, till exempel paket-SAS-token, konfigurations-SAS-token med mera. Om du vill se hur du deklarerar och anger dessa parametrar kan du granska en exempelfil för ARM-mallar och en exempelfil för ARM-mallparametrar. Vänta sedan tills distributionen är klar.
Kommentar
Om du får ett felmeddelande om att den offentliga IP-adressen används tar du bort den offentliga IP-adressen från tjänstkonfigurationsfilen (.cscfg) och ARM-mallparametrar. Ta inte bort den offentliga IP-adressdeklarationen från själva ARM-mallfilen.
I det här avsnittet beskrivs hur du använder Azure SDK och C# för att göra rätt konfigurationsändringar. Om du vill använda SDK:t för att distribuera molntjänstprojektet och ändra den relaterade konfigurationen bör du registrera ett program i Microsoft Entra-ID. Information om hur du gör registreringen finns i artikeln Använda portalen för att skapa ett Microsoft Entra-program och tjänstens huvudnamn som kan komma åt resurser . I följande tabell beskrivs de specifika steg som ska utföras och motsvarande underavsnitt som ska läsas i den artikeln.
Steg
Underavsnittslänk
Tilldela din prenumeration rollen ägare för ditt program
Ladda upp den genererade tjänstpaketfilen (<project-name.cspkg>) till en lagringskontocontainer för din molntjänst.
Kommentar
Trots vad som anges i anvisningarna behöver du inte ladda upp molntjänstkonfigurationsfilen (ServiceConfiguration.Cloud.cscfg). Endast tjänstpaketfilen måste laddas upp här.
Generera en URL för signatur för delad åtkomst (SAS) för den uppladdade tjänstpaketfilen.
Hämta följande värden från nyckelvalvscertifikatsidan i Azure Portal:
URL för Key Vault-certifikat
Prenumerations-ID:t
Namnet på resursgruppen där nyckelvalvet distribueras
Öppna filen SDKSample\CreateCloudService\CreateCloudService\LoginHelper.cs i en textredigerare. InitializeServiceClient I -metoden skriver du över värdena för variablerna tenantId, clientIdoch med clientCredentials värdena för klient-ID, program-ID och programhemlighet. Dessa värden är de som du kopierade när du registrerade ditt program.
Öppna filen SDKSample\CreateCloudService\CreateCloudService\Program.cs i en textredigerare. Main I metoden skriver du över några av de initierade värdena för variablerna som deklarerades i början av metoden. I följande tabell visas variabelnamnen och de värden som du måste använda för dem.
Variabelnamn
Nytt värde
m_subId
ID för prenumerationen som innehåller molntjänsten
csrgName
Namnet på resursgruppen som innehåller molntjänsten
csName
Namnet på molntjänstens resurs
kvrgName
Namnet på resursgruppen som innehåller nyckelvalvsresursen
kvName
Resursnamnet för nyckelvalvet
kvsubid
ID:t för prenumerationen som innehåller nyckelvalvet (detta kan skilja sig från prenumerations-ID:t för molntjänsten)
secretidentifier
URL:en för nyckelvalvets certifikat
filename
Den lokala sökvägen till tjänstkonfigurationsfilen (ServiceConfiguration.Cloud.cscfg)
packageurl
SAS-URL:en för tjänstpaketfilen (project-name.cspkg>)<
I fönstret Solution Explorer i Visual Studio högerklickar du på projektnoden och väljer sedan Hantera NuGet-paket. På fliken Bläddra söker du efter, väljer och installerar följande paket:
Microsoft.Azure.Management.ResourceManager
Microsoft.Azure.Management.Compute
Microsoft.Azure.Management.Storage
Azure.Identity
Microsoft.Rest.ClientRuntime.Azure.Authentication
Kör projektet och vänta sedan på att meddelanden ska visas i fönstret Utdata . Om fönstret visar "avsluta med kod 0" bör uppdateringen och distributionen fungera. Om den visar "avsluta med kod 1" kan du behöva söka efter felmeddelanden för att granska eventuella problem.
I Visual Studio måste du göra två konfigurationsändringar. Du konfigurerar tjänstkonfigurationen så att den lokala kontexten är anpassad till molnkontexten och sedan anger du var ditt nyckelvalv finns.
För tjänstkonfigurationen kopierar du innehållet i molnkontexten ( filen ServiceConfiguration.Cloud.cscfg ) och klistrar in dem i den lokala kontexten (filen ServiceConfiguration.Local.cscfg ). Har du en annan konfiguration eller behöver du fortfarande den lokala konfigurationsfilen för andra användningsområden? Om något av villkoren är sant bevarar du elementen certificate från den befintliga lokala kontexten.
I fönstret Visual Studio Solution Explorer högerklickar du på projektnoden och väljer sedan Publicera. Fortsätt genom guiden Publicera Azure-program tills du kommer till fliken Inställningar . På den fliken anger du fältet Nyckelvalv till den plats där nyckelvalvet sparas. Välj slutligen knappen Publicera och vänta sedan tills distributionen har slutförts.
När du har ändrat konfigurationen kan kunderna kommunicera med din webbplats för molntjänster med hjälp av HTTPS-protokollet. Om certifikatet är självsignerat kan webbläsaren rapportera en varning om att certifikatet inte är säkert, men webbläsaren blockerar inte anslutningen.