Comment configurer Cryptons SSL pour une application Web Azure
Alors qu'Azure fournit de nombreux outils, il n'a pas tout. Nous verrons comment configurer un SSL fonctionnel Let's Encrypt pour n'importe quelle application Web Azure, afin de lui fournir le niveau de sécurité nécessaire pour toutes les opérations en ligne standard.
Sommaire
Qu'est-ce que Let’s Encrypt?
Tout d'abord, éliminons Encrypt de Let. Alors c'est quoi? Il s'agit d'une autorité de certification ouverte, gratuite et automatisée. Cela signifie que vous pouvez acquérir des certificats SLL entièrement gratuits et modifier votre structure d'URL par défaut de HTTP: // à HTTP: //.
Mais quel est le problème? Est-ce possible que cela soit aussi simple? Eh bien, les certifications SSL ne durent que 90 jours, pas plusieurs années comme les autres certificats. Néanmoins, il y a une raison à cela. C'est ainsi que l'automatisation est encouragée et que vous pouvez rendre votre expérience SSL inoubliable (tant que vous avez des scripts ou un processus d'arrière-plan qui renouvelle et installe automatiquement les certificats).
De nos jours, il n'y a vraiment aucune raison de ne pas utiliser Let’s Encrypt, et cela est évident par son utilisation majoritaire dans divers secteurs et leurs applications Web.
Prérequis pour la configuration:
- Un compte Azure actif. (Les étudiants peuvent obtenir des ressources Azure gratuites.)
- Toute application Web hébergée via App Service. La pile n'a pas d'importance.
- Une entrée DNS personnalisée qui pointe vers l'application Web.
Dans un monde idéal, votre App Service et votre App Service Plan font partie du même groupe de ressources. Mais il est possible de s'en passer.
Étape 1: compte de stockage pour les WebJobs
D'accord, la première étape consiste donc à créer un compte de stockage Azure, qui est une extension qui nous permettra de renouveler la certification chaque période de 90 jours via Azure WebJobs.
Le compte doit ne pas être de BlobStorage, car cela ne fonctionnera pas. Il doit s'agir de «Storage» ou de «StorageV2».
Maintenant que c'est fait. Vous allez ajouter deux paramètres distincts: «AzureWebJobsDashboard» et «AzureWebJobsStorage» avec une chaîne qui les connecte au compte de stockage précédemment créé.
La chaîne peut ressembler à ceci:
DefaultEndpointsProtocol = https; AccountName = (youraccount); AccountKey = (yourkey);
Étape 2: automatisation du processus
Pour que l'extension précédente fonctionne sans notre interférence, nous devons créer un «Azure Service Principal», qui fonctionne à partir de la notion de délégation via une entrée Azure AD.
Localisez-vous vers Azure Active Directory, dans lequel vous souhaitez créer la nouvelle application. Dans le panneau, sélectionnez «Inscriptions d'applications».
- Créez une nouvelle application et configurez-la comme vous pouvez le voir sur cette image.
- Générez un secret client et enregistrez-le dans un endroit sûr. Si vous ne le faites pas, vous ne pourrez plus y accéder via un texte clair.
- Revenez à l'aperçu et enregistrez le «Client ID».
- Maintenant, vous devez fournir un accès Contribute au principal du service. Il doit être lié au groupe de ressources de votre «Plan App Service» et «App Service».
- Dans le menu suivant, sélectionnez le rôle «Contributeur» et ajoutez-le au «Service Principal» créé.
- Si vous avez d'autres services dans le groupe, vous pouvez également leur ajouter le rôle Contributeur.
Vous pouvez bricoler les paramètres comme vous le souhaitez, mais c'est à peu près tout pour le principal du service.
Étape 3: encryptons l'extension
Maintenant que vous disposez de tous les prérequis secondaires, vous pouvez enfin installer l'extension et la configurer en conséquence.
Accédez à «App Service» et recherchez l'extension Azure Let’s Encrypt par «SJKP. " Après l'avoir installé, vous pouvez procéder à la configuration.
Pour configurer l'extension, vous devez vous rendre sur la page "Outils avancés" de "App Service". Vous pouvez le trouver en le recherchant dans la barre de recherche, et il vous mènera probablement à un site comme celui-ci: https://votredomaine.scm.azurewebsite.net.
Pour accéder aux paramètres, vous cliquez sur le bouton "Extensions de site" et cliquez sur "Lancer". Maintenant, la page de configuration devrait s'ouvrir et vous aurez les options suivantes.
- Locataire: le directeur Azure AD, dans lequel votre principal de service a été créé.
- Identité du client: le même identifiant client que précédemment.
- ClientSecret: le même secret client d'avant.
- ResourceGroupName: le nom du groupe de ressources de l'App Service que vous utilisez.
- SubscriptionID: l'ID de votre abonnement que vous utilisez pour le groupe de ressources.
- Mettre à jour les paramètres d'application: définissez-le toujours sur True pour que tous vos paramètres soient enregistrés. Sinon, les paramètres ne seront pas disponibles pour les WebsJobs pour installer les nouveaux certificats.
- ServicePlanResourceGroupName: Si votre App Service et votre plan de service sont dans le même groupe, le nom sera le même que ResourceGroupName. Sinon, vous entrerez le nom du groupe de ressources de l'emplacement réel du plan de service.
Après avoir configuré toutes les options, vous serez redirigé vers un aperçu des certificats, des liaisons SSL et des domaines personnalisés. Étant donné que vous devez encore les générer, vous pouvez sélectionner vos domaines pour la demande et soumettre une «Get Request» pour le certificat SSL.
Mais avant de faire cela, vous devez ajouter votre e-mail, afin de pouvoir recevoir des alertes en cas de problème avec le certificat (comme s'il était obsolète ou non renouvelé).
Et c'est tout. Maintenant, tout est configuré et vous pouvez profiter de la récompense de terminer la tâche par vous-même.
Problèmes potentiels
Étant donné que l'extension a besoin d'accéder à vos pages pour l'autorisation de domaine, assurez-vous que l'URL est accessible au public via HTTP://votredomaine.com/.well-known/acme-challenge/.
Si une erreur se produit et que l'URL n'est pas atteinte, vous avez probablement le jeu de règles sur le web.config qui empêche l'accès ou votre HTTPS est appliqué via les paramètres App Service.
De plus, comme Let's Encrypt utilise le mécanisme HTTP-01 dans ACME, il placera un jeton aléatoire dans le fichier sur votre serveur Web, puis tentera de le récupérer via HTTP. Si vous définissez l'application Web sur https uniquement, la demande sera refusée, ce que vous souhaitez éviter.