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 %u00e9galement possible d’acheter un certificat aupr%u00e8s d’une autorit%u00e9 de certification. Ce billet montre un moyen de demander un certificat r%u00e9el ou de production (par opposition %u00e0 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 %u00e9tapes principales sont les suivantes: – cr%u00e9er la demande de certificat depuis IIS – envoyer la demande %u00e0 Gandi – confirmer la demande via un certain nombre d’e-mails et d’interfaces Web – r%u00e9cup%u00e9rer la r%u00e9ponse %u00e0 la demande de certificat et l’int%u00e9grer 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%u00e9er la requ%u00eate 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%u00e9 aupr%u00e8s de www.gandi.net %u00e9tait “appartement-a-vendre-courbevoie.fr” et nous allons cr%u00e9er un certificat pour myapp.appartement-a-vendre-courbevoie.fr de fa%u00e7on %u00e0 pouvoir exposer une application en SSL %u00e0 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%u00e9er une demande depuis IIS. IIS est utilis%u00e9 ici comme un outil qui cr%u00e9e un certificat non sign%u00e9 (avec une clef priv%u00e9e) avant de l’envoyer (sans la clef priv%u00e9e) %u00e0 l’autorit%u00e9 de certification qui signera le certificat. |
Start IIS Manager, and go to the server certificate feature | D%u00e9marrer le gestionnaire IIS, et aller %u00e0 la fonctionnalit%u00e9 “Server Certificate” |
create a certificate request | cr%u00e9er 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’%u00e9cran suivant, le plus important est d’avoir le “Common name” qui correspond exactement %u00e0 l’URL avec laquelle on entend utiliser le certificat. |
this generates a certificate request that looks like this | cela g%u00e9n%u00e8re une demande de certificat qui ressemble %u00e0 cela |
send the request to Gandi | Envoyer la demande %u00e0 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%u00e9 l’adresse e-mail admin@<notre domaine>. Ensuite, on pourra demander le certificat. Voici les diff%u00e9rentes %u00e9tapes. |
confirm the request | Confirmer la demande |
Here are the steps to confirm the request | Voici les diff%u00e9rentes %u00e9tapes de confirmation de la demande. |
Retrieve the request response | R%u00e9cup%u00e9rer la r%u00e9ponse %u00e0 la demande de certificat |
Let’s now retrieve the result | R%u00e9cup%u00e9rons maintenant le r%u00e9sultat |
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%u00e9 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%u00e9ployer 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%u00e9ployons cela sur un certain nombre de machines pour montrer que le certificat est d%u00e9ploy%u00e9 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%u00e9 dans un billet pr%u00e9c%u00e9dent. |
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%u00eame 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%u00e7on %u00e0 pouvoir acc%u00e9der %u00e0 l’app. depuis le nom de domaine correspondant au certificat, une entr%u00e9e de type CNAME doit %u00eatre ajout%u00e9e dans le DNS; alors myapp.appartement-a-vendre-courbevoie.fr correspondra %u00e0 sslapp.cloudapp.net |
Here is the result | Voici le r%u00e9sultat |
Blog Post by: Benjamin GUINEBERTIERE