How to request/buy a certificate and use it in Windows Azure | Comment demander/acheter un certificat et l’utiliser dans Windows Azure
Some domain registrars may let you request an SSL certificate for your domain. It is also possible to buy a certificate from a certificate authority. This post shows a way to request such a real or production certificate (not a test certificate) and use it in Windows Azure. | Certains fournisseurs de nom de domaine fournissent un certificat SSL avec le nom de domaine. Il est également possible d’acheter un certificat auprès d’une autorité de certification. Ce billet montre un moyen de demander un certificat réel ou de production (par opposition à un certificat de test) et l’utiliser dans Windows Azure. |
In this example I use Gandi registrar. With each domain they offer an SSL certificate; so let’s see how to request it and use it in Windows Azure. The main steps are - create a request from within IIS - send the request to Gandi - confirm the request in a bunch of e-mail and Web interfaces - retrieve the request response and put it into IIS - export the certificate from the IIS machine as a .pfx file - upload the .pfx file to Windows Azure portal - use the certificate in a simple sample Windows Azure App. | Dans cet exemple, j’utilise Gandi comme fournisseur de nom de domaine. Avec chaque domaine, ils fournissent gratuitement un certificat SSL; voyons donc comment demander ce certificat et l’utiliser dans Windows Azure. Les étapes principales sont les suivantes: - créer la demande de certificat depuis IIS - envoyer la demande à Gandi - confirmer la demande via un certain nombre d’e-mails et d’interfaces Web - récupérer la réponse à la demande de certificat et l’intégrer dans IIS - exporter le certificat depuis la machine IIS sous la forme d’un fichier .pfx - charger le fichier .pfx dans le portail Windows Azure - utiliser le certificat dans une application Azure exemple simple |
create a request from within IIS | Créer la requête depuis IIS |
In this sample, the domain I registered with www.gandi.net was “appartement-a-vendre-courbevoie.fr” and we’ll create a certificate for myapp.appartement-a-vendre-courbevoie.fr so that we can expose an ssl application at https://myapp.appartement-a-vendre-courbevoie.fr. | Dans cet exemple, le nom de domaine que j’ai enregistré auprès de www.gandi.net était “appartement-a-vendre-courbevoie.fr” et nous allons créer un certificat pour myapp.appartement-a-vendre-courbevoie.fr de façon à pouvoir exposer une application en SSL à https://myapp.appartement-a-vendre-courbevoie.fr. |
We’ll first create a certificate request from within IIS. IIS is used as a tool that will create an unsigned certificate (with its private key) before sending it (without the private key) to the certificate authority who will sign the certificate. | Nous allons d’abord créer une demande depuis IIS. IIS est utilisé ici comme un outil qui crée un certificat non signé (avec une clef privée) avant de l’envoyer (sans la clef privée) à l’autorité de certification qui signera le certificat. |
Start IIS Manager, and go to the server certificate feature | Démarrer le gestionnaire IIS, et aller à la fonctionnalité “Server Certificate” |
create a certificate request | créer une demande de certificat |
In next screen the most important is to have Common name corresponding exactly to the URL that the certificate will be used with. | Dans l’écran suivant, le plus important est d’avoir le “Common name” qui correspond exactement à l’URL avec laquelle on entend utiliser le certificat. |
this generates a certificate request that looks like this | cela génère une demande de certificat qui ressemble à cela |
send the request to Gandi | Envoyer la demande à Gandi |
Before requesting the certificate, Gandi requires you to have an e-mail adress that corresponds to admin@<yourdomain> Then, you can request the certificate. Here are the steps. | Avant de demander le certificat, Gandi demande qu’on ait associé l’adresse e-mail admin@<notre domaine>. Ensuite, on pourra demander le certificat. Voici les différentes étapes. |
confirm the request | Confirmer la demande |
Here are the steps to confirm the request | Voici les différentes étapes de confirmation de la demande. |
Retrieve the request response | Récupérer la réponse à la demande de certificat |
Let’s now retrieve the result | Récupérons maintenant le résultat |
export the certificate | Exporter le certificat |
Let’s now export the certificate from the local machine to a .pfx file. | Exportons maintenant le certificat de la machine locale vers un fichier .pfx. |
upload the .pfx file to Windows Azure portal | Charger le fichier .pfx dans le portail Windows Azure |
Let’s send the .pfx file to Windows Azure | Envoyons le fichier .pfx vers Windows Azure |
use the certificate in a simple sample Windows Azure App. | Utiliser le certificat dans une application Azure exemple simple |
NB: In some configurations, I’ve seen the necessity to have the certificate stored at current user’s level, not only at local machine level. Let’s first copy the certificate from the local machine store to the current user store. | Dans certaines configuration, j’ai vu le besoin d’avoir le certificat stocké au niveau de l’utilisateur et pas seulement au niveau de la machine. Copions donc d’abord le certificat du magasin de la machine locale au magasin de certificats de l’utilisateur courant. |
Let’s now use the certificate in a Visual Studio 2010 project and deploy it to Windows Azure. | Utilisons maintenant le certificat dans un projet Visual Studio 2010 avant de déployer ce dernier dans Windows Azure. |
Let’s deploy to a bunch of extra small machines to show that the certificate is deployed automatically by Windows Azure to each instance. Note that SSL channel ends on each VM in the Web farm as I showed in this previous post. | Déployons cela sur un certain nombre de machines pour montrer que le certificat est déployé automatiquement par Windows Azure sur chaque instance. On notera que le canal SSL se termine sur chaque instance de machine virtuelle de la ferme web comme je l’ai montré dans un billet précédent. |
By the way, using 6 extra small machines is the same price as 1 small machine. | A noter: l’utilisation de 6 machines extra petites est au même prix que l’utilisation d’une seule petite machine. |
(…)
(…)
In order to be able to access the App. from the domain name corresponding to the certificate, a CNAME entry must be added in the DNS; then myapp.appartement-a-vendre-courbevoie.fr matches sslapp.cloudapp.net | De façon à pouvoir accéder à l’app. depuis le nom de domaine correspondant au certificat, une entrée de type CNAME doit être ajoutée dans le DNS; alors myapp.appartement-a-vendre-courbevoie.fr correspondra à sslapp.cloudapp.net |
Here is the result | Voici le résultat |