Konfigurera TLS för ett program i Azure
Viktigt
Cloud Services (klassisk) är nu inaktuell för nya kunder och kommer att dras tillbaka den 31 augusti 2024 för alla kunder. 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.
Anteckning
Procedurerna i den här uppgiften gäller för Azure Cloud Services. Se detta för App Services.
Den här uppgiften använder en produktionsdistribution. Information om hur du använder en mellanlagringsdistribution finns i slutet av det här avsnittet.
Läs det här 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 skaffa ett TLS/SSL-certifikat som har signerats av en certifikatutfärdare (CA), en betrodd tredje part 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 personligt 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ännamn 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änstdefinitionen och tjänstkonfigurationsfilerna uppdateras.
Öppna tjänstdefinitionsfilen (CSDEF) i utvecklingsmiljön, lägg till ett certifikatavsnitt i avsnittet WebRole och inkludera 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. Förhöjda Endast förhöjda processer kan komma åt den privata nyckeln. 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>
Lägg till ett bindningselement i avsnittet Webbplatser i din tjänstdefinitionsfil . 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 har slutförts. men du måste fortfarande lägga till certifikatinformationen i tjänstkonfigurationsfilen.
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 tjänstdefinitionen och tjänstkonfigurationsfilerna har uppdaterats paketerar du distributionen för uppladdning till Azure. Om du använder cspack ska du inte använda flaggan /generateConfigurationFile , eftersom det skriver över certifikatinformationen som du nyss infogade.
Steg 3: Ladda upp ett certifikat
Anslut till Azure Portal och...
I avsnittet Alla resurser i portalen väljer du din molntjänst.
Klicka på Certifikat.
Klicka på Ladda upp överst i certifikatområdet.
Ange filen, lösenordet och klicka sedan på 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.
Klicka på webbplats-URL:en för att öppna webbläsaren.
I webbläsaren ändrar du länken så att den använder https i stället för http och besöker sedan sidan.
Anteckning
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. Om du använder ett certifikat som signerats av en betrodd certifikatutfärdare eliminerar du 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.)
Tips
Om du vill använda TLS för en mellanlagringsdistribution i stället för en produktionsdistribution måste du först fastställa url:en 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 din mellanlagrade distribution för att använda det nya paketet.
Nästa steg
- Allmän konfiguration av molntjänsten.
- Lär dig hur du distribuerar en molntjänst.
- Konfigurera ett anpassat domännamn.
- Hantera din molntjänst.