HTTPS avec répartition de charge sur Azure - Load Balanced HTTPS on Azure
Français | English |
Voyons comment on peut configurer une ferme Web Azure avec HTTPS. Dans notre exemple, on veut accéder à https://www.demo.public-cloud.archims.fr, et ce avec un certificat de test. Les principales étapes sont: - créer un CNAME au niveau DNS - créer un certificat de test - déployer le PFX vers l’emplacement Azure - créer la solution Azure - Déployer la solution - tester | Let’s see how to configure an Azure Web Farm with HTTPS. In our example, we want to access https://www.demo.public-cloud.archims.fr, and we’ll do it with a test certificate. The main steps are - create a CNAME at the DNS level - create a test certificate - deploy the PFX to the Azure slot - create the Azure solution - deploy the Azure solution - test |
Un autre billet pas à pas sur ce même sujet est disponible sur le blog de J.D. Meier | Another step by step blog post to do that is available on J.D. Meier’s blog |
Créons une entrée CNAME L’emplacement où l’application va être déployée ici est benjguin2.cloudapp.net donc on crée un CNAME de www.demo.public-cloud.archims.fr vers benjguin2.cloudapp.net NB: la partie DNS est gérée en dehors d’Azure | Let’s create a CNAME entry the slot where the application will be deployed here is benjguin2.cloudapp.net so we’ll create a CNAME from www.demo.public-cloud.archims.fr to benjguin2.cloudapp.net NB: the DNS part is managed outside of Azure |
Créons un certificat de test. Le certificat de test est créé avec les outils makecert.exe et Pvk2Pfx.exe qui peuvent être utilisés depuis un Visual Studio command prompt. | Let’s create a test certificate. The test certificate is created with the makecert.exe and Pvk2Pfx.exe tools that can be used from a Visual Studio command prompt. |
Déployons le PFX dans l’emplacement Azure On se connecte sur le portail Azure, on choisit l’emplacement de déploiement avant de cliquer sur “Add Certificate” | Let’s deploy the PFX to the Azure slot Connect to the Windows Azure portal, and choose the deployment slot before clicking the “Add Certificate” button |
L’emplacement contient maintent le certificat. Concrètement, cela signifie que toutes les machines virtuelles dans cet emplacement recevrons lors de leur démarrage ce certificat, avec sa clef privée. | the slot now contains the new certificate. In practice, this means that all the virtual machines that will be deployed to this slot will get the certificate with its private key. |
Créons la solution Azure | Let’s create the Azure solution. |
On installe le certificat de test avec sa clef privée sur la machine de développement locale en double cliquant sur le fichier pfx | Install the test certificate with its private key to your local dev machine store by double clicking on the pfx file |
On copie le certificat du magasin de l’utilisateur local vers le magasin de la machine locale (start run, mmc, add snap ins; add certificates 2 fois: une pour current user, une pour local computer) avec CTRL glisser déplacer | Copy the certificate from current user store to the computer store (start run, mmc, add snap ins; add certificates twice: one for current user, one for local computer) with CTRL drag & drop |
retour à Visual Studio | back to Visual Studio |
it is also possible to have 2 endpoints: one for HTTPS, one for HTTP: |
Déployons la solution Azure | Let’s deploy the Azure solution |
…
Testons | Let’s test |
cela est parce qu’il s’agit d’un certificate de test | this is because the certificate is a test certificate |
L’adresse IP cliente est la même que celle obtenue depuis https://myipaddress.com par exemple, donc c’est l’adresse de l’utilisateur final, pas celle du load balancer Azure. Le canal SSL est de bout en bout, du navigateur de l’utilisateur final jusqu’à la machine virtuelle de la ferme qui lui répond. | the client address is the same as from https://myipaddress.com, so it is the end user’s ip address, not the Azure load balancer’s one. The SSL channel is end to end from the user’s browser to the virtual machine in the farm. |
Benjamin