Lägga till och hantera TLS/SSL-certifikat i Azure App Service
Kommentar
Från och med den 1 juni 2024 har alla nyligen skapade App Service-appar möjlighet att generera ett unikt standardvärdnamn med hjälp av namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net
. Befintliga appnamn förblir oförändrade.
Exempel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Mer information finns i Unikt standardvärdnamn för App Service-resurs.
Du kan lägga till digitala säkerhetscertifikat som ska användas i programkoden eller skydda anpassade DNS-namn i Azure App Service, vilket ger en mycket skalbar webbvärdtjänst med självkorrigering. För närvarande kallas TLS-certifikat (Transport Layer Security), även tidigare kallade SSL-certifikat (Secure Socket Layer), dessa privata eller offentliga certifikat hjälper dig att skydda Internetanslutningar genom att kryptera data som skickas mellan webbläsaren, webbplatser som du besöker och webbplatsservern.
I följande tabell visas alternativen för att lägga till certifikat i App Service:
Alternativ | Description |
---|---|
Skapa ett kostnadsfritt Hanterat App Service-certifikat | Ett privat certifikat som är kostnadsfritt och enkelt att använda om du bara behöver skydda din anpassade domän i App Service. |
Importera ett App Service-certifikat | Ett privat certifikat som hanteras av Azure. Den kombinerar enkelheten i automatiserad certifikathantering och flexibiliteten med förnyelse- och exportalternativ. |
Importera ett certifikat från Key Vault | Användbart om du använder Azure Key Vault för att hantera dina PKCS12-certifikat. Se Krav för privata certifikat. |
Ladda upp ett privat certifikat | Om du redan har ett privat certifikat från en tredjepartsleverantör kan du ladda upp det. Se Krav för privata certifikat. |
Ladda upp ett offentligt certifikat | Offentliga certifikat används inte för att skydda anpassade domäner, men du kan läsa in dem i koden om du behöver dem för att få åtkomst till fjärrresurser. |
Förutsättningar
Skapa en App Service-app. Appens App Service-plan måste vara på nivån Basic, Standard, Premium eller Isolerad . Se Skala upp en app för att uppdatera nivån.
För ett privat certifikat kontrollerar du att det uppfyller alla krav från App Service.
Endast kostnadsfritt certifikat:
Mappa domänen där du vill att certifikatet ska vara App Service. Mer information finns i Självstudie: Mappa ett befintligt anpassat DNS-namn till Azure App Service.
För en rotdomän (till exempel contoso.com) kontrollerar du att appen inte har några konfigurerade IP-begränsningar . Både skapande av certifikat och periodisk förnyelse för en rotdomän beror på att din app kan nås från Internet.
Krav för privata certifikat
Det kostnadsfria App Service-hanterade certifikatet och App Service-certifikatet uppfyller redan kraven i App Service. Om du väljer att ladda upp eller importera ett privat certifikat till App Service måste certifikatet uppfylla följande krav:
- Exporteras som en lösenordsskyddad PFX-fil, krypterad med triple DES.
- Innehåller privat nyckel minst 2048 bitar lång
- Innehåller alla mellanliggande certifikat och rotcertifikatet i certifikatkedjan.
För att skydda en anpassad domän i en TLS-bindning har certifikatet fler krav:
- Innehåller en utökad nyckelanvändning för serverautentisering (OID = 1.3.6.1.5.5.7.3.1)
- Registrerat av en betrodd certifikatutfärdare.
Kommentar
ECC-certifikat (Elliptic Curve Cryptography) fungerar med App Service men omfattas inte av den här artikeln. För de exakta stegen för att skapa ECC-certifikat arbetar du med certifikatutfärdare.
Kommentar
När du har lagt till ett privat certifikat i en app lagras certifikatet i en distributionsenhet som är bunden till App Service-planens kombination av resursgrupp, region och operativsystem, internt kallad en webbrymd. På så sätt är certifikatet tillgängligt för andra appar i samma kombination av resursgrupp, region och operativsystem. Privata certifikat som laddats upp eller importerats till App Service delas med App Services i samma distributionsenhet.
Du kan lägga till upp till 1 000 privata certifikat per webbyta.
Skapa ett kostnadsfritt hanterat certifikat
Det kostnadsfria Hanterade App Service-certifikatet är en nyckelfärdig lösning för att skydda ditt anpassade DNS-namn i App Service. Utan någon åtgärd från dig hanteras det här TLS/SSL-servercertifikatet fullständigt av App Service och förnyas automatiskt kontinuerligt i sex månaders steg, 45 dagar innan det upphör att gälla, så länge kraven som du har konfigurerat förblir desamma. Alla associerade bindningar uppdateras med det förnyade certifikatet. Du skapar och binder certifikatet till en anpassad domän och låter App Service göra resten.
Viktigt!
Innan du skapar ett kostnadsfritt hanterat certifikat kontrollerar du att du uppfyller kraven för din app.
Kostnadsfria certifikat utfärdas av DigiCert. För vissa domäner måste du uttryckligen tillåta DigiCert som certifikatutfärdare genom att skapa en CAA-domänpost med värdet : 0 issue digicert.com
.
Azure hanterar certifikaten helt åt dig, så alla aspekter av det hanterade certifikatet, inklusive rotutfärdaren, kan ändras när som helst. Dessa ändringar ligger utanför din kontroll. Se till att undvika hårda beroenden och "fästa" övningscertifikat till det hanterade certifikatet eller någon del av certifikathierarkin. Om du behöver funktionen för att fästa certifikat lägger du till ett certifikat i din anpassade domän med någon annan tillgänglig metod i den här artikeln.
Det kostnadsfria certifikatet har följande begränsningar:
- Stöder inte jokerteckencertifikat.
- Stöder inte användning som ett klientcertifikat med hjälp av certifikatets tumavtryck, som planeras för utfasning och borttagning.
- Stöder inte privat DNS.
- Går inte att exportera.
- Stöds inte i en App Service-miljö (ASE).
- Stöder endast alfanumeriska tecken, bindestreck (-) och punkter (.).
- Endast anpassade domäner med en längd på upp till 64 tecken stöds.
- Måste ha en A-post som pekar på webbappens IP-adress.
- Stöds inte för appar som inte är offentligt tillgängliga.
- Stöds inte med rotdomäner som är integrerade med Traffic Manager.
- Måste uppfylla alla ovanstående för lyckade certifikatutfärdningar och förnyelser.
I Azure-portalen går du till den vänstra menyn och väljer App Services-appnamn>><.
På appens navigeringsmeny väljer du Certifikat. I fönstret Hanterade certifikat väljer du Lägg till certifikat.
Välj den anpassade domänen för det kostnadsfria certifikatet och välj sedan Verifiera. När verifieringen är klar väljer du Lägg till. Du kan bara skapa ett hanterat certifikat för varje anpassad domän som stöds.
När åtgärden är klar visas certifikatet i listan Hanterade certifikat .
För att skydda en anpassad domän med det här certifikatet måste du fortfarande skapa en certifikatbindning. Följ stegen i Skydda ett anpassat DNS-namn med en TLS/SSL-bindning i Azure App Service.
Importera ett App Service-certifikat
Om du vill importera ett App Service-certifikat köper och konfigurerar du först ett App Service-certifikat och följer sedan stegen här.
I Azure-portalen går du till den vänstra menyn och väljer App Services-appnamn>><.
I appens navigeringsmeny väljer du Certifikat>Ta med egna certifikat (.pfx)>Lägg till certifikat.
I Källa väljer du Importera App Service-certifikat.
I App Service-certifikat väljer du det certifikat som du nyss skapade.
I Certifikatvänligt namn ger du certifikatet ett namn i din app.
Välj validera. När valideringen lyckas väljer du Lägg till.
När åtgärden är klar visas certifikatet i listan Bring your own certificates (Ta med dina egna certifikat).
För att skydda en anpassad domän med det här certifikatet måste du fortfarande skapa en certifikatbindning. Följ stegen i Skydda ett anpassat DNS-namn med en TLS/SSL-bindning i Azure App Service.
Importera ett certifikat från Key Vault
Om du använder Azure Key Vault för att hantera dina certifikat kan du importera ett PKCS12-certifikat till App Service från Key Vault om du uppfyller kraven.
Auktorisera App Service att läsa från valvet
Som standard har App Service-resursprovidern inte åtkomst till ditt nyckelvalv. Om du vill använda ett nyckelvalv för en certifikatdistribution måste du auktorisera läsbehörighet för resursprovidern till nyckelvalvet.
Kommentar
För närvarande tillåter inte Azure-portalen att du konfigurerar ett App Service-certifikat i Key Vault för att använda RBAC-modellen. Du kan dock använda Azure CLI, Azure PowerShell eller en ARM-malldistribution för att utföra den här konfigurationen. Mer information finns i Ge åtkomst till Key Vault-nycklar, certifikat och hemligheter med en rollbaserad åtkomstkontroll i Azure.
Resursprovider | AppId för tjänstens huvudnamn | Nyckelvalvshemlighetsbehörigheter | Behörigheter för Key Vault-certifikat | RBAC-behörigheter för Nyckelvalvet |
---|---|---|---|---|
Microsoft Azure App Service eller Microsoft.Azure.WebSites | - abfa0a7c-a6b6-4736-8310-5855508787cd , vilket är detsamma för alla Azure-prenumerationer – För Azure Government-molnmiljö använder du 6a02c803-dafd-4136-b4c3-5a6f318b4714 . |
Hämta | Hämta | Certifikatanvändare |
Microsoft.Azure.CertificateRegistration | Hämta List Ställ in Delete |
Hämta List |
Importera ett certifikat från valvet till din app
I Azure-portalen går du till den vänstra menyn och väljer App Services-appnamn>><.
I appens navigeringsmeny väljer du Certifikat>Ta med egna certifikat (.pfx)>Lägg till certifikat.
I Källa väljer du Importera från Key Vault.
Välj Välj nyckelvalvscertifikat.
Använd följande tabell för att hjälpa dig att välja certifikatet:
Inställning beskrivning Abonnemang Prenumerationen som är associerad med nyckelvalvet. Nyckelvalv Nyckelvalvet som har det certifikat som du vill importera. Certifikat I den här listan väljer du ett PKCS12-certifikat som finns i valvet. Alla PKCS12-certifikat i valvet visas med tumavtryck, men alla stöds inte i App Service. När du är klar med ditt val väljer du Välj, Verifiera och sedan Lägg till.
När åtgärden är klar visas certifikatet i listan Bring your own certificates (Ta med dina egna certifikat). Om importen misslyckas med ett fel uppfyller certifikatet inte kraven för App Service.
Kommentar
Om du uppdaterar certifikatet i Key Vault med ett nytt certifikat synkroniserar App Service automatiskt certifikatet inom 24 timmar.
För att skydda en anpassad domän med det här certifikatet måste du fortfarande skapa en certifikatbindning. Följ stegen i Skydda ett anpassat DNS-namn med en TLS/SSL-bindning i Azure App Service.
Ladda upp ett privat certifikat
När du har fått ett certifikat från certifikatprovidern gör du certifikatet redo för App Service genom att följa stegen i det här avsnittet.
Sammanfoga mellanliggande certifikat
Om certifikatutfärdare ger dig flera certifikat i certifikatkedjan måste du sammanfoga certifikaten i samma ordning.
Öppna varje mottaget certifikat i en textredigerare.
Om du vill lagra det sammanfogade certifikatet skapar du en fil med namnet mergedcertificate.crt.
Kopiera innehållet för varje certifikat till den här filen. Se till att följa certifikatsekvensen som anges av certifikatkedjan och börja med certifikatet och sluta med rotcertifikatet, till exempel:
-----BEGIN CERTIFICATE----- <your entire Base64 encoded SSL certificate> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded intermediate certificate 1> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded intermediate certificate 2> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <The entire Base64 encoded root certificate> -----END CERTIFICATE-----
Exportera sammanfogat privat certifikat till PFX
Exportera nu ditt sammanfogade TLS/SSL-certifikat med den privata nyckel som användes för att generera din certifikatbegäran. Om du genererade din certifikatbegäran med OpenSSL skapade du en privat nyckelfil.
Kommentar
OpenSSL v3 ändrade standard chiffer från 3DES till AES256, men detta kan åsidosättas på kommandoraden -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -macalg SHA1. OpenSSL v1 använder 3DES som standard, så de PFX-filer som genereras stöds utan några särskilda ändringar.
Om du vill exportera certifikatet till en PFX-fil kör du följande kommando, men ersätter platshållarna <private-key-file> och <merged-certificate-file> med sökvägarna till din privata nyckel och den sammanfogade certifikatfilen.
openssl pkcs12 -export -out myserver.pfx -inkey <private-key-file> -in <merged-certificate-file>
När du uppmanas att göra det anger du ett lösenord för exportåtgärden. När du laddar upp ditt TLS/SSL-certifikat till App Service senare måste du ange det här lösenordet.
Om du använde IIS eller Certreq.exe för att generera din certifikatbegäran installerar du certifikatet på den lokala datorn och exporterar sedan certifikatet till en PFX-fil.
Ladda upp certifikat till App Service
Nu är du redo att ladda upp certifikatet till App Service.
I Azure-portalen går du till den vänstra menyn och väljer App Services-appnamn>><.
I appens navigeringsmeny väljer du Certifikat>Hämta egna certifikat (.pfx)>Ladda upp certifikat.
Använd följande tabell för att ladda upp .pfx-certifikatet:
Inställning beskrivning PFX-certifikatfil Välj .pfx-filen. Certifikatlösenord Ange lösenordet som du skapade när du exporterade PFX-filen. Eget namn på certifikat Certifikatnamnet som ska visas i webbappen. När du är klar med ditt val väljer du Välj, Verifiera och sedan Lägg till.
När åtgärden är klar visas certifikatet i listan Bring your own certificates (Ta med dina egna certifikat).
För att skydda en anpassad domän med det här certifikatet måste du fortfarande skapa en certifikatbindning. Följ stegen i Skydda ett anpassat DNS-namn med en TLS/SSL-bindning i Azure App Service.
Ladda upp ett offentligt certifikat
Offentliga certifikat stöds i .cer format.
Kommentar
När du har laddat upp ett offentligt certifikat till en app är det endast tillgängligt för den app som det laddas upp till. Offentliga certifikat måste laddas upp till varje enskild webbapp som behöver åtkomst. För specifika scenarier för App Service Environment läser du dokumentationen för certifikat och App Service Environment
Du kan ladda upp upp till 1 000 offentliga certifikat per App Service-plan.
I Azure-portalen går du till den vänstra menyn och väljer App Services-appnamn>><.
I appens navigeringsmeny väljer du Certifikat>offentliga nyckelcertifikat (.cer)>Lägg till certifikat.
Använd följande tabell för att ladda upp .cer-certifikatet:
Inställning beskrivning CER-certifikatfil Välj din .cer-fil. Eget namn på certifikat Certifikatnamnet som ska visas i webbappen. När du är klar väljer du Lägg till.
När certifikatet har laddats upp kopierar du certifikatets tumavtryck och granskar sedan Gör certifikatet tillgängligt.
Förnya ett certifikat som upphör att gälla
Innan ett certifikat upphör att gälla måste du lägga till det förnyade certifikatet i App Service och uppdatera eventuella certifikatbindningar där processen är beroende av certifikattypen. Ett certifikat som importerats från Key Vault, inklusive ett App Service-certifikat, synkroniseras till App Service var 24:e timme och uppdaterar TLS/SSL-bindningen när du förnyar certifikatet. För ett uppladdat certifikat finns det ingen automatisk bindningsuppdatering. Baserat på ditt scenario granskar du motsvarande avsnitt:
- Förnya ett uppladdat certifikat
- Förnya ett App Service-certifikat
- Förnya ett certifikat som importerats från Key Vault
Förnya uppladdat certifikat
När du ersätter ett utgånget certifikat kan det sätt på vilket du uppdaterar certifikatbindningen med det nya certifikatet påverka användarupplevelsen negativt. Din inkommande IP-adress kan till exempel ändras när du tar bort en bindning, även om bindningen är IP-baserad. Det här resultatet är särskilt effektfullt när du förnyar ett certifikat som redan finns i en IP-baserad bindning. Följ dessa steg i den angivna sekvensen för att undvika en ändring av appens IP-adress och undvika driftstopp för din app på grund av HTTPS-fel:
Gå till sidan Anpassade domäner för din app, välj knappen ... åtgärder och välj Uppdatera bindning.
Välj det nya certifikatet och välj Uppdatera.
Ta bort det befintliga certifikatet.
Förnya ett certifikat som importerats från Key Vault
Kommentar
Information om hur du förnyar ett App Service-certifikat finns i Förnya ett App Service-certifikat.
Om du vill förnya ett certifikat som du har importerat till App Service från Key Vault läser du Förnya ditt Azure Key Vault-certifikat.
När certifikatet har förnyats i nyckelvalvet synkroniserar App Service automatiskt det nya certifikatet och uppdaterar eventuella tillämpliga certifikatbindningar inom 24 timmar. Följ dessa steg för att synkronisera manuellt:
Gå till appens certifikatsida .
Under Ta med dina egna certifikat (.pfx)väljer du knappen ... information för det importerade nyckelvalvscertifikatet och väljer sedan Synkronisera.
Vanliga frågor och svar
Hur gör jag för att automatisera tillägg av bring-your-owncertificate till en app?
- Azure CLI: Binda ett anpassat TLS/SSL-certifikat till en webbapp
- Azure PowerShell binder ett anpassat TLS/SSL-certifikat till en webbapp med hjälp av PowerShell
Kan jag använda ett privat CA-certifikat (certifikatutfärdare) för inkommande TLS i min app?
Du kan använda ett privat CA-certifikat för inkommande TLS i en App Service Environment version 3 (ASEv3). Detta är inte möjligt i App Service (flera klientorganisationer). Mer information om Flera klientorganisationer i App Service jämfört med en enda klientorganisation finns i Jämförelse mellan App Service Environment v3 och App Service public multitenant.
Kan jag göra utgående anrop med ett privat CA-klientcertifikat (certifikatutfärdare) från min app?
Detta stöds endast för Windows-containerappar i App Service för flera klientorganisationer. Dessutom kan du göra utgående anrop med hjälp av ett privat CA-klientcertifikat med både kodbaserade och containerbaserade appar i en App Service Environment version 3 (ASEv3). Mer information om Flera klientorganisationer i App Service jämfört med en enda klientorganisation finns i Jämförelse mellan App Service Environment v3 och App Service public multitenant.
Kan jag läsa in ett privat CA-certifikat (certifikatutfärdare) i mitt betrodda Rotarkiv för App Service?
Du kan läsa in ditt eget CA-certifikat till det betrodda rotarkivet i en App Service Environment version 3 (ASEv3). Du kan inte ändra listan över betrodda rotcertifikat i App Service (flera klientorganisationer). Mer information om Flera klientorganisationer i App Service jämfört med en enda klientorganisation finns i Jämförelse mellan App Service Environment v3 och App Service public multitenant.