Hoe Let's Encrypt SSL te configureren voor een Azure Web App

Inhoudsopgave:

Hoe Let's Encrypt SSL te configureren voor een Azure Web App
Hoe Let's Encrypt SSL te configureren voor een Azure Web App
Anonim

Hoewel Azure veel tools biedt, heeft het niet alles. We zullen bekijken hoe u een functionele Let's Encrypt SSL kunt configureren voor elke Azure Web App, om deze te voorzien van het nodige beveiligingsniveau voor alle standaard online bewerkingen.

Wat is Let's Encrypt?

Eerst eerst, laten we Let's Encrypt uit de weg ruimen. Dus wat is het? Het is een geautomatiseerde, gratis, open certificeringsinstantie. Dit betekent dat u volledig gratis SLL-certificaten kunt verkrijgen en uw standaard URL-structuur kunt wijzigen van HTTP:// in

Maar wat is het addertje? Kan het echt zo simpel zijn? Welnu, de SSL-certificeringen duren slechts 90 dagen, niet meerdere jaren zoals andere certificaten. Toch is hier een reden voor. Het is zo dat automatisering wordt aangemoedigd en dat u uw SSL-ervaring vergeetbaar kunt maken (zolang u enkele scripts of achtergrondprocessen hebt die de certificaten automatisch vernieuwen en installeren).

Tegenwoordig is er echt geen reden om Let's Encrypt niet te gebruiken, en dat blijkt uit het meeste gebruik ervan in verschillende sectoren en de daaruit voortvloeiende web-apps.

Vereisten voor configuratie:

  1. Een actief Azure-account. (Studenten kunnen gratis Azure-bronnen krijgen.)
  2. Elke webapplicatie die wordt gehost via de App Service. De stapel doet er niet toe.
  3. Een aangepast DNS-item dat verwijst naar de webapp.

In een ideale wereld bevinden uw App Service en App Service Plan zich binnen dezelfde resourcegroep. Maar het is mogelijk om zonder dit te doen.

Stap 1: Opslagaccount voor WebJobs

Ok, dus de eerste stap is het maken van een Azure Storage-account, een extensie waarmee we de certificering elke 90 dagen kunnen verlengen via Azure WebJobs.

Het account mag niet van BlobStorage zijn, omdat het niet werkt. Het moet ofwel "Storage" of "StorageV2" zijn.

Een Azure-opslagaccount maken
Een Azure-opslagaccount maken
Twee afzonderlijke instellingen, AzureWebJobsDashboard en AzureWebJobsStorage, zijn vervolgens verbonden
Twee afzonderlijke instellingen, AzureWebJobsDashboard en AzureWebJobsStorage, zijn vervolgens verbonden

Nu dat klaar is. U voegt twee afzonderlijke instellingen toe: "AzureWebJobsDashboard" en "AzureWebJobsStorage" met een tekenreeks die ze verbindt met het eerder gemaakte opslagaccount.

De string kan er als volgt uitzien:

DefaultEndpointsProtocol=https;AccountName=[uwaccount];AccountKey=[uwsleutel];

Stap 2: het proces automatiseren

Om de vorige extensie te laten werken zonder onze tussenkomst, moeten we een 'Azure Service Principal' maken, die werkt met het idee van delegatie via een Azure AD-item.

Ga naar de Azure Active Directory, waarin u de nieuwe toepassing wilt maken. Selecteer in het paneel 'App-registraties'.

  1. Maak een nieuwe applicatie en stel deze in zoals je kunt zien in deze afbeelding.
  2. Maak een Nieuwe Applicatie
    Maak een Nieuwe Applicatie
  3. Genereer een klantgeheim en bewaar het op een veilige plek. Als je dat niet doet, heb je er geen toegang meer toe via leesbare tekst.
  4. Keer terug naar het overzicht en sla de "Client ID" op.
  5. Nu moet u Contribute-toegang verlenen tot de Service-Principal. Het moet worden gekoppeld aan de resourcegroep van uw "App Service Plan" en "App Service".
  6. Bied Contribute-toegang tot de Service-Principal
    Bied Contribute-toegang tot de Service-Principal
  7. Selecteer in het volgende menu de rol 'Bijdrager' en voeg deze toe aan de aangemaakte 'Service-principal'.
  8. Als je nog andere diensten in de groep hebt, kun je daar ook de rol Bijdrager aan toevoegen.

Je kunt aan de instellingen sleutelen zoals je wilt, maar daar blijft het bij voor de Service Principal.

Stap 3: Laten we extensie versleutelen

Nu u aan alle secundaire vereisten voldoet, kunt u eindelijk de extensie installeren en dienovereenkomstig configureren.

Ga naar de "App Service" en zoek naar de Azure Let's Encrypt-extensie met "SJKP ." Nadat u deze hebt geïnstalleerd, kunt u doorgaan met de configuratie.

Om de extensie in te stellen, moet u zelf naar de pagina "Geavanceerde tools" van de "App Service" gaan. Je kunt het vinden door ernaar te zoeken in de zoekbalk, en het zal je waarschijnlijk naar een site als deze brengen:

Om toegang te krijgen tot de instellingen, klikt u op de knop "Site-extensies" en klikt u op "Start". Nu zou de configuratiepagina moeten openen en heb je de volgende opties.

  • Tenant: de Azure AD-directeur, waarin uw Service-Principal is gemaakt.
  • ClientID: dezelfde klant-ID van voorheen.
  • ClientSecret: hetzelfde clientgeheim van voorheen.
  • ResourceGroupName: de naam van de resourcegroep van de App Service die u gebruikt.
  • SubscriptionID: de ID van uw abonnement dat u gebruikt voor de resourcegroep.
  • Applicatie-instellingen bijwerken: stel het altijd in op True, zodat al uw instellingen worden opgeslagen. Anders zijn de instellingen niet beschikbaar voor de WebsJobs om de nieuwe certificaten te installeren.
  • ServicePlanResourceGroupName: Als uw App Service en Service Plan zich in dezelfde groep bevinden, is de naam hetzelfde als de ResourceGroupName. Anders voert u de naam van de resourcegroep van de daadwerkelijke serviceplanlocatie in.

Na het configureren van alle opties, wordt u naar een overzicht van certificaten, SSL-bindingen en aangepaste domeinen geleid. Omdat u ze nog steeds moet genereren, kunt u uw domeinen selecteren voor het verzoek en een "Get Request" voor het SSL-certificaat indienen.

Maar voordat je dat doet, moet je je e-mailadres toevoegen, zodat je waarschuwingen kunt krijgen als er iets misgaat met het certificaat (zoals dat het verouderd of niet vernieuwd is).

En dat is het zowat. Nu is alles ingesteld en kun je genieten van de beloning om de taak helemaal alleen te voltooien.

Potentiële problemen

Omdat de extensie toegang tot uw pagina's nodig heeft voor domeinautorisatie, moet u ervoor zorgen dat de URL openbaar toegankelijk is via

Als er een fout optreedt en de URL niet wordt bereikt, heeft u waarschijnlijk de regel ingesteld op de web.config die toegang verhindert of wordt uw HTTPS afgedwongen via de App Service-instellingen.

Ook, omdat Let's Encrypt het HTTP-01-mechanisme in ACME gebruikt, zal het een willekeurig token in het bestand op uw webserver plaatsen en vervolgens proberen het via HTTP op te halen. Als u de web-app instelt op alleen https, wordt het verzoek geweigerd, wat u wilt vermijden.

Populair onderwerp