När det gäller cybersäkerhet är det viktigt att konfigurera automatisk certifikatförnyelse för att upprätthålla en säker och tillförlitlig miljö. Om certifikaten inte uppdateras eller förnyas i tid utsätts systemen för sårbarheter. Potentiellt sårbara områden är:
- TLS/SSL-certifikat som har upphört att gälla.
- Nätverk som är föremål för potentiella överträdelser.
- Känsliga data som är oskyddade.
- Tjänster som används för affär-till-affär-processer.
- Varumärkesförlust som äventyrar integriteten och konfidentialiteten för digitala transaktioner.
Azure Key Vault stöder automatisk certifikatförnyelse som utfärdats av en integrerad certifikatutfärdare (CA) som DigiCert eller GlobalSign. För en icke-inintegrerad ca krävs en manuell metod.
Den här artikeln överbryggar klyftan genom att tillhandahålla en automatisk förnyelseprocess som är skräddarsydd för certifikat från icke-integrerade certifikatutfärdare. Den här processen lagrar sömlöst de nya certifikaten i Key Vault, förbättrar effektiviteten, förbättrar säkerheten och förenklar distributionen genom att integrera med olika Azure-resurser.
En automatisk förnyelseprocess minskar mänskliga fel och minimerar tjänstavbrott. När du automatiserar certifikatförnyelsen påskyndar det inte bara förnyelseprocessen, utan minskar sannolikheten för fel som kan inträffa under manuell hantering. När du använder funktionerna i Key Vault och dess tillägg kan du skapa en effektiv automatisk process för att optimera drift och tillförlitlighet.
Automatisk certifikatförnyelse är det första fokuset, men ett bredare mål är att förbättra säkerheten inom alla delar av processen. Det här arbetet omfattar hur du implementerar principen om lägsta behörighet (PoLP) eller liknande åtkomstkontroller med hjälp av Key Vault. Det betonar också vikten av robusta loggnings- och övervakningsmetoder för Key Vault. Den här artikeln belyser vikten av att använda Key Vault för att stärka hela livscykeln för certifikathantering och visar att säkerhetsfördelarna inte är begränsade till lagring av certifikat.
Du kan använda Key Vault och dess automatiska förnyelseprocess för att kontinuerligt uppdatera certifikat. Automatisk förnyelse spelar en viktig roll i distributionsprocessen och hjälper Azure-tjänster som integreras med Key Vault att dra nytta av uppdaterade certifikat. Den här artikeln ger insikter om hur kontinuerlig förnyelse och tillgänglighet bidrar till den övergripande distributionseffektiviteten och tillförlitligheten för Azure-tjänster.
Arkitektur
Här är en kort översikt över den underliggande arkitekturen som driver den här lösningen.
Ladda ned en Visio-fil med den här arkitekturen.
Azure-miljön består av följande PaaS-resurser (Plattform som en tjänst): ett Nyckelvalv som är dedikerat till att lagra certifikat som endast utfärdats av samma icke-inintegrerade certifikatutfärdare, ett Azure Event Grid-systemämne, en lagringskontokö och ett Azure Automation-konto som exponerar en webhook som är mål för Event Grid.
Det här scenariot förutsätter att en befintlig offentlig nyckelinfrastruktur (PKI) redan finns på plats och består av en Microsoft Enterprise CA som är ansluten till en domän i Microsoft Entra-ID. Både PKI-domänen och Active Directory-domänen kan finnas i Azure eller lokalt och de servrar som måste konfigureras för certifikatförnyelse.
De virtuella datorerna med certifikat för att övervaka förnyelse behöver inte vara anslutna till Active Directory eller Microsoft Entra-ID. Det enda kravet är att CA:n och hybridarbetaren, om den finns på en annan virtuell dator än ca:n, ska anslutas till Active Directory.
Följande avsnitt innehåller information om processen för automatisk förnyelse.
Arbetsflöde
Den här bilden visar det automatiska arbetsflödet för certifikatförnyelse i Azure-ekosystemet.
Key Vault-konfiguration: Den inledande fasen av förnyelseprocessen innebär att certifikatobjektet lagras i avsnittet Certifikat i nyckelvalvet.
Även om det inte är obligatoriskt kan du konfigurera anpassade e-postmeddelanden genom att tagga certifikatet med mottagarens e-postadress. Genom att tagga certifikatet får du meddelanden i tid när förnyelseprocessen är klar. Om flera mottagare behövs kan du avgränsa deras e-postadresser med ett kommatecken eller semikolon. Taggnamnet för det här ändamålet är Mottagare och dess värde är en eller flera e-postadresser till de utsedda administratörerna.
När du använder taggar i stället för inbyggda certifikatmeddelanden kan du tillämpa meddelanden på ett visst certifikat med en utsedd mottagare. Inbyggda certifikatmeddelanden gäller urskillningslöst för alla certifikat i nyckelvalvet och använder samma mottagare för alla.
Du kan integrera inbyggda meddelanden med lösningen men använda en annan metod. Inbyggda meddelanden kan bara meddela om ett kommande certifikat upphör att gälla, men taggarna kan skicka meddelanden när certifikatet förnyas på den interna certifikatutfärdare och när det är tillgängligt i Key Vault.
Konfiguration av Key Vault-tillägg: Du måste utrusta servrarna som behöver använda certifikaten med Key Vault-tillägget, ett mångsidigt verktyg som är kompatibelt med Windows - och Linux-system . IaaS-servrar (Infrastruktur som en tjänst) i Azure och lokala servrar eller andra molnservrar som integreras via Azure Arc stöds. Konfigurera Key Vault-tillägget för att regelbundet avsöka Key Vault efter eventuella uppdaterade certifikat. Avsökningsintervallet är anpassningsbart och flexibelt så att det kan anpassas efter specifika driftskrav.
Event Grid-integrering: När ett certifikat närmar sig förfallodatum fångar två Event Grid-prenumerationer upp den här viktiga livslängdshändelsen från nyckelvalvet.
Event Grid-utlösare: En Event Grid-prenumeration skickar information om certifikatförnyelse till en lagringskontokö. Den andra prenumerationen utlöser lanseringen av en runbook via den konfigurerade webhooken i Automation-kontot. Om runbooken inte kan förnya certifikatet, eller om certifikatutfärdare inte är tillgänglig, försöker en schemalagd process förnya runbooken från den tidpunkten tills kön rensas. Den här processen gör lösningen robust.
För att förbättra lösningens återhämtning konfigurerar du en mekanism för obeställbara platser . Den hanterar potentiella fel som kan uppstå under meddelanden som överförs från Event Grid till prenumerationsmålen, lagringskö och webhooken.
Lagringskontokö: Runbooken startas inom CA-servern som konfigurerats som en Automation Hybrid Runbook Worker. Den tar emot alla meddelanden i lagringskontokön som innehåller namnet på det utgångna certifikatet och nyckelvalvet som är värd för runbooken. Följande steg utförs för varje meddelande i kön.
Certifikatförnyelse: Skriptet i runbooken ansluter till Azure för att hämta certifikatets mallnamn som du konfigurerade under genereringen. Mallen är konfigurationskomponenten för certifikatutfärdare som definierar attributen och syftet med de certifikat som ska genereras.
Efter skriptgränssnittet med Key Vault initieras en begäran om certifikatförnyelse. Den här begäran utlöser Key Vault för att generera en certifikatsigneringsbegäran (CSR) och tillämpar samma mall som genererade det ursprungliga certifikatet. Den här processen säkerställer att det förnyade certifikatet överensstämmer med de fördefinierade säkerhetsprinciperna. Mer information om säkerhet i autentiserings- och auktoriseringsprocessen finns i avsnittet Säkerhet .
Skriptet laddar ned CSR:en och skickar den till ca:en.
Certifikatutfärdare genererar ett nytt x509-certifikat baserat på rätt mall och skickar tillbaka det till skriptet. Det här steget säkerställer att det förnyade certifikatet överensstämmer med de fördefinierade säkerhetsprinciperna.
Sammanslagning av certifikat och Key Vault-uppdatering: Skriptet sammanfogar det förnyade certifikatet tillbaka till nyckelvalvet, slutför uppdateringsprocessen och tar bort meddelandet från kön. Under hela processen extraheras aldrig certifikatets privata nyckel från nyckelvalvet.
Övervakning och e-postavisering: Alla åtgärder som olika Azure-komponenter kör, till exempel ett Automation-konto, Key Vault, en lagringskontokö och Event Grid, loggas i Arbetsytan Azure Monitor-loggar för att aktivera övervakning. När certifikatet har kopplats till nyckelvalvet skickar skriptet ett e-postmeddelande till administratörer för att meddela dem om resultatet.
Certifikathämtning: Key Vault-tillägget på servern spelar en viktig roll under den här fasen. Den laddar automatiskt ned den senaste versionen av certifikatet från nyckelvalvet till det lokala arkivet på servern som använder certifikatet. Du kan konfigurera flera servrar med Key Vault-tillägget för att hämta samma certifikat (jokertecken eller med flera SAN-certifikat (Subject Alternative Name) från nyckelvalvet.
Komponenter
Lösningen använder olika komponenter för att hantera automatisk certifikatförnyelse i Azure. I följande avsnitt beskrivs varje komponent och dess specifika syfte.
Key Vault-tillägg
Key Vault-tillägget spelar en viktig roll när det gäller att automatisera certifikatförnyelse och måste installeras på servrar som kräver automatisering. Mer information om installationsprocedurer på Windows-servrar finns i Key Vault-tillägget för Windows. Mer information om installationssteg för Linux-servrar finns i Key Vault-tillägget för Linux. Mer information om Azure Arc-aktiverade servrar finns i Key Vault-tillägget för Arc-aktiverade servrar.
Kommentar
Följande är exempelskript som du kan köra från Azure Cloud Shell för att konfigurera Key Vault-tillägget:
Konfigurationsparametrarna för Key Vault-tillägget är:
- Key Vault-namn: Nyckelvalvet som innehåller certifikatet för förnyelse.
- Certifikatnamn: Namnet på certifikatet som ska förnyas.
- Certifikatarkiv, namn och plats: Certifikatarkivet där certifikatet lagras. På Windows-servrar är
My
standardvärdet för Namn och Plats ärLocalMachine
, vilket är datorns personliga certifikatarkiv. På Linux-servrar kan du ange en filsystemsökväg, förutsatt att standardvärdet ärAzureKeyVault
, vilket är certifikatarkivet för Key Vault. - linkOnRenewal: En flagga som anger om certifikatet ska länkas till servern vid förnyelse. Om det är inställt
true
på på Windows-datorer kopieras det nya certifikatet i arkivet och länkar det till det gamla certifikatet, vilket i praktiken kopplar om certifikatet. Standardvärdetfalse
innebär att en explicit bindning krävs. - pollingIntervalInS: Avsökningsintervallet för Key Vault-tillägget för att söka efter certifikatuppdateringar. Standardvärdet är
3600
sekunder (1 timme). - authenticationSetting: Autentiseringsinställningen för Key Vault-tillägget. För Azure-servrar kan du utelämna den här inställningen, vilket innebär att den systemtilldelade hanterade identiteten för den virtuella datorn används mot nyckelvalvet. För lokala servrar innebär inställningen
msiEndpoint = "http://localhost:40342/metadata/identity"
användning av tjänstens huvudnamn som är associerat med datorobjektet som skapades under Azure Arc-registrering.
Kommentar
Ange key vault-tilläggsparametrarna endast under den första installationen. Detta säkerställer att de inte genomgår några ändringar under förnyelseprocessen.
Automation-konto
Automation-kontot hanterar processen för certifikatförnyelse. Du måste konfigurera kontot med en runbook med hjälp av PowerShell-skriptet.
Du måste också skapa en Hybrid Worker-grupp. Associera Hybrid Worker-gruppen med en Windows Server-medlem i samma Active Directory-domän för CA:en, helst ca:en själv, för att starta runbooks.
Runbooken måste ha en associerad webhook initierad från Hybrid Runbook Worker. Konfigurera webhook-URL:en i händelseprenumerationen för Event Grid-systemavsnittet.
Lagringskontokö
Lagringskontokön lagrar de meddelanden som innehåller namnet på certifikatet som förnyas och det nyckelvalv som innehåller certifikatet. Konfigurera lagringskontokön i händelseprenumerationen för Event Grid-systemavsnittet. Kön hanterar avkoppling av skriptet från certifikatets förfalloaviseringshändelse. Den har stöd för att bevara händelsen i ett kömeddelande. Den här metoden hjälper till att säkerställa att förnyelseprocessen för certifikat upprepas via schemalagda jobb även om det uppstår problem under skriptkörningen.
Hybrid Runbook Worker
Hybrid Runbook Worker spelar en viktig roll när det gäller att använda runbooks. Du måste installera Hybrid Runbook Worker med Azure Hybrid Worker-tilläggsmetoden , vilket är det läge som stöds för en ny installation. Du skapar den och associerar den med en Windows Server-medlem i samma Active Directory-domän för CA:en, helst ca:en själv.
Key Vault
Key Vault är den säkra lagringsplatsen för certifikat. Under händelseavsnittet i nyckelvalvet associerar du event grid-systemavsnittet med webhooken för Automation-kontot och en prenumeration.
Event Grid
Event Grid hanterar händelsedriven kommunikation i Azure. Konfigurera Event Grid genom att konfigurera systemämnet och händelseprenumerationen för att övervaka relevanta händelser. Relevanta händelser inkluderar aviseringar om certifikatets förfallodatum, utlösande åtgärder i arbetsflödet för automatisering och publicering av meddelanden i lagringskontokön. Konfigurera Event Grid-systemavsnittet med följande parametrar:
- Källa: Namnet på nyckelvalvet som innehåller certifikaten.
- Källtyp: Källans typ. Till exempel är
Azure Key Vault
källtypen för den här lösningen . - Händelsetyper: Den händelsetyp som ska övervakas. Händelsetypen för den här lösningen är
Microsoft.KeyVault.CertificateNearExpiry
till exempel . Den här händelsen utlöses när ett certifikat snart upphör att gälla. - Prenumeration för Webhook:
- Prenumerationsnamn: Namnet på händelseprenumerationen.
- Slutpunktstyp: Den typ av slutpunkt som ska användas. Slutpunktstypen för den här lösningen är
Webhook
till exempel . - Slutpunkt: URL:en för webhooken som är associerad med Automation-konto-runbooken. Mer information finns i avsnittet Automation-konto .
- Prenumeration för StorageQueue:
- Prenumerationsnamn: Namnet på händelseprenumerationen.
- Slutpunktstyp: Den typ av slutpunkt som ska användas. Slutpunktstypen för den här lösningen är
StorageQueue
till exempel . - Slutpunkt: Lagringskontokön.
Alternativ
Den här lösningen använder ett Automation-konto för att samordna processen för certifikatförnyelse och använder Hybrid Runbook Worker för att ge flexibiliteten att integrera med en certifikatutfärdare lokalt eller i andra moln.
En annan metod är att använda Logic Apps. Den största skillnaden mellan de två metoderna är att Automation-kontot är en PaaS-lösning (plattform som en tjänst), medan Logic Apps är en SaaS-lösning (programvara som en tjänst).
Den största fördelen med Logic Apps är att det är en fullständigt hanterad tjänst. Du behöver inte bekymra dig om den underliggande infrastrukturen. Logic Apps kan också enkelt integreras med externa anslutningsappar, vilket utökar utbudet av meddelandemöjligheter, till exempel att interagera med Microsoft Teams eller Microsoft 365.
Logic Apps har inte en funktion som liknar Hybrid Runbook Worker, vilket resulterar i mindre flexibel integrering med CA:n, så ett Automation-konto är den bästa metoden.
Information om scenario
Varje organisation kräver säker och effektiv hantering av certifikatets livscykel. Om du inte uppdaterar ett certifikat innan det upphör att gälla kan det leda till avbrott i tjänsten och medföra betydande kostnader för verksamheten.
Företag driver vanligtvis komplexa IT-infrastrukturer som involverar flera team som ansvarar för certifikatets livscykel. Den manuella karaktären hos processen för certifikatförnyelse medför ofta fel och förbrukar värdefull tid.
Den här lösningen hanterar utmaningarna genom att automatisera certifikatförnyelse som utfärdats av Microsoft Certificate Service. Tjänsten används ofta för olika serverprogram, till exempel webbservrar, SQL-servrar och för kryptering, icke-förvissning, signeringsändamål och säkerställande av uppdateringar i tid och säker certifikatlagring i Key Vault. Tjänstens kompatibilitet med Azure-servrar och lokala servrar stöder flexibel distribution.
Potentiella användningsfall
Den här lösningen vänder sig till organisationer i olika branscher som:
- Använd Microsoft Certificate Service för generering av servercertifikat.
- Kräv automatisering i processen för certifikatförnyelse för att påskynda driften och minimera fel, vilket hjälper till att undvika överträdelser av avtal på affärsförlust och servicenivå (SLA).
- Kräv säker certifikatlagring på lagringsplatser som Key Vault.
Den här arkitekturen fungerar som en grundläggande distributionsmetod för programlandningszonprenumerationer.
Att tänka på
Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som du kan använda för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.
Säkerhet
Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.
I Key Vault-systemet lagras certifikat på ett säkert sätt som krypterade hemligheter som skyddas av rollbaserad åtkomstkontroll i Azure (RBAC).
Under hela certifikatförnyelseprocessen är komponenter som använder identiteter:
- Systemkontot för Hybrid Runbook Worker, som körs under den virtuella datorns konto.
- Key Vault-tillägget, som använder den hanterade identitet som är associerad med den virtuella datorn.
- Automation-kontot, som använder sin avsedda hanterade identitet.
Principen om lägsta behörighet tillämpas strikt för alla identiteter som används i proceduren för certifikatförnyelse.
Systemkontot för Hybrid Runbook Worker-servern måste ha rätt att registrera certifikat på en eller flera certifikatmallar som genererar nya certifikat.
I nyckelvalvet som innehåller certifikaten måste Automation-kontoidentiteten Key Vault Certificate Officer
ha rollen. Dessutom måste servrar som kräver certifikatåtkomst ha Get
och List
behörigheter i Key Vault-certifikatarkivet.
I lagringskontokön måste Automation-kontoidentiteten ha rollerna Storage Queue Data Contributor
, Reader and Data Access
och Reader
.
I scenarier där Key Vault-tillägget distribueras på en virtuell Azure-dator sker autentiseringen via den virtuella datorns hanterade identitet. Men när den distribueras på en Azure Arc-aktiverad server hanteras autentiseringen med hjälp av tjänstens huvudnamn. Både den hanterade identiteten och tjänstens huvudnamn måste tilldelas nyckelvalvets hemliga användarroll i nyckelvalvet som lagrar certifikatet. Du måste använda en hemlig roll eftersom certifikatet lagras i nyckelvalvet som en hemlighet.
Kostnadsoptimering
Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Checklista för designgranskning för kostnadsoptimering.
Den här lösningen använder Azure PaaS-lösningar som fungerar enligt ett betala per användning-ramverk för att optimera kostnaderna. Utgifter beror på antalet certifikat som behöver förnyas och antalet servrar som är utrustade med Key Vault-tillägget, vilket resulterar i låga omkostnader.
Utgifter som beror på Key Vault-tillägget och Hybrid Runbook Worker beror på dina installationsval och avsökningsintervall. Kostnaden för Event Grid motsvarar mängden händelser som genereras av Key Vault. Samtidigt korrelerar kostnaden för Automation-kontot med antalet runbooks som du använder.
Kostnaden för Key Vault beror på olika faktorer, inklusive din valda SKU (Standard eller Premium), antalet lagrade certifikat och frekvensen för åtgärder som utförs på certifikaten.
Liknande överväganden som de konfigurationer som beskrivs för Key Vault gäller lika för lagringskontot. I det här scenariot räcker det med en standard-SKU med lokalt redundant lagringsreplikering för lagringskontot. I allmänhet är kostnaden för lagringskontokön minimal.
Om du vill beräkna kostnaden för att implementera den här lösningen använder du Priskalkylatorn för Azure och anger de tjänster som beskrivs i den här artikeln.
Driftsäkerhet
Driftskvalitet omfattar de driftsprocesser som distribuerar ett program och håller det igång i produktion. Mer information finns i Checklista för designgranskning för Operational Excellence.
Proceduren för automatisk certifikatförnyelse lagrar certifikat på ett säkert sätt genom standardiserade processer som gäller för alla certifikat i nyckelvalvet.
Integrering med Event Grid utlöser ytterligare åtgärder, till exempel att meddela Microsoft Teams eller Microsoft 365 och effektivisera förnyelseprocessen. Den här integreringen minskar certifikatförnyelsetiden avsevärt och minskar risken för fel som kan leda till avbrott i verksamheten och överträdelser av serviceavtal.
Dessutom underlättar sömlös integrering med Azure Monitor, Microsoft Sentinel, Microsoft Copilot for Security och Microsoft Defender för molnet kontinuerlig övervakning av processen för certifikatförnyelse. Den stöder avvikelseidentifiering och säkerställer att robusta säkerhetsåtgärder bibehålls.
Distribuera det här scenariot
Välj följande knapp för att distribuera miljön som beskrivs i den här artikeln. Distributionen tar ungefär två minuter att slutföra och skapar ett nyckelvalv, ett Event Grid-systemämne som konfigurerats med de två prenumerationerna, ett lagringskonto som innehåller certlc-kön och ett Automation-konto som innehåller runbooken och webhooken som är länkad till Event Grid.
Detaljerad information om de parametrar som behövs för distributionen finns i kodexempelportalen .
Viktigt!
Du kan distribuera en fullständig labbmiljö för att demonstrera hela arbetsflödet för automatisk certifikatförnyelse. Använd kodexemplet för att distribuera följande resurser:
- Active Directory-domän Services (AD DS) på en virtuell domänkontrollant.
- Active Directory Certificate Services (AD CS) i en virtuell ca-dator, ansluten till domänen, konfigurerad med en mall, WebServerShort, för registrering av certifikaten som ska förnyas.
- En SMTP-server (Windows Simple Mail Transfer Protocol) som är installerad på samma virtuella dator i certifikatleverantören för att skicka e-postaviseringar. MailViewer installeras också för att verifiera e-postaviseringar som skickas.
- Key Vault-tillägget som är installerat på den virtuella datorn för domänkontrollanten för att hämta de förnyade certifikaten från Key Vault-tillägget.
Deltagare
Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.
Huvudsakliga författare:
- Fabio Masciotra | Huvudkonsult
- Angelo Mazzucchi | Leveransarkitekt
Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.
Relaterade resurser
Key Vault
Key Vault-tillägget för Windows
Key Vault-tillägget för Linux
Vad är Azure Automation?
Azure Automation Hybrid Runbook Worker
Azure Event Grid