Denna handledning visar hur du skapar Let’s Encrypt certifikat för dina webbappar i Azure med hjälp av App Service Acmebot. Med den här appen kan du säkra dina Azure-webbplatser med SSL helt gratis, certifikat läggs till och förnyas av en funktionsapp.
App Service Acmebot skapades för att stödja flera apptjänster, ha enkel distribution, har enkel konfiguration, en robust implementering och enkel övervakning. Key Vault Acmebot (samma utvecklare) är en mer avancerad version, men den kräver Azure DNS och Azure Key Vault. Jag har en extern DNS-leverantör och använder inte Azure DNS.
Installera App Service Acmebot
Gå till den officiella webbplatsen för App Service Acmebot och klicka på knappen Deploy to Azure under rubriken Getting Started. Detta öppnar Azure Portal och en anpassad mallinstallation.
Jag skapade en ny resursgrupp (Acmebot-NorthEurope) för att samla alla nya resurser i denna grupp. Detta gör det lättare att organisera resurser och att ta bort alla resurser om vi vill det. Den här åtgärden skapade fyra resurser i vår nya resursgrupp: Application Insights, App Functions Service Plan, Functions App och ett Storage Account.
Programinställningar för funktionsappen skapas automatiskt. I dokumentationen anges att du måste ange: LetsEncrypt:SubscriptionId och LetsEncrypt:Contacts i applikationsinställningarna. Du kan verifiera att dessa inställningar har lagts till genom att klicka på funktionsappen och gå till Konfiguration.
Säkra din funktionsapp
Du måste begränsa åtkomsten till din funktionsapp om du inte vill att vem som helst skall kunna lägga till certifikat för dina webbplatser. Egentligen är det inte möjligt att lägga till ett certifikat utan autentisering (du får ett felmeddelande om du ignorerar detta steg). Åtkomsten kommer att begränsas till en Active Directory App. Klicka på funktionsappen och bläddra till Plattformsfunktioner -> Autentisering/auktorisation. Aktivera autentisering, välj Logga in med Azure Directory och klicka på Azure Active Directory bland autentiseringsprovidrar. Välj Express och skapa en ny AD-app (du kan använda en befintlig app). Klicka på OK och glöm inte att spara. Du kan gå till Azure Active Directory -> Appregistreringar för att verifiera att en ny AD-app har skapats.
Tillåt åtkomst till resursgrupper
Din funktionsapp behöver åtkomst till de resursgrupper som är behållare för webbappar och serviceplaner för webbappar. Jag har en resursgrupp för appserviceplaner och en resursgrupp för varje webbplats. Du måste lägga till en Web Plan Contributor roll för resursgruppen som innehåller din app-serviceplan och en Website Contributor roll för varje resursgrupp som innehåller en webbapp. En resursgrupp kan ha båda dessa roller. Roller läggs till under Åtkomstkontroll (IAM) för resursgrupper.
Lägg till ett nytt certifikat
Du kan behöva starta om din funktionsapp om detta inte fungerar direkt. Bläddra till https://FUNKTIONSNAMN.azurewebsites.net/add-certificate, du kan hitta url:en för din funktion genom att klicka på den i Azure Portal. Välj alla domäner som du vill inkludera i certifikatet och klicka på Submit.
Kontrollera att du kan bläddra till din webbplats med https och glöm inte att omdirigera förfrågningar från din osäkra http-adress till din säkra https-adress.
Uppdatera App Service Acmebot
Funktionsappen körs från det senaste paketet, url:en till paketet hittas i inställningen WEBSITE_RUN_FROM_PACKAGE
under konfigurationsavsnittet. Du kanske måste uppdatera/uppgradera funktionsappen vid vissa tidpunkter i framtiden (ändra paketets url och uppdatera tilläggsversionen). Besök App Service Acmebot regelbundet för information om uppdateringar och uppgraderingar.