Exporter (0) Imprimer
Développer tout

Configurer un certificat SSL sur un point de terminaison HTTPS

Mis à jour: février 2014

Pour ajouter un point de terminaison HTTPS à un rôle dans votre service Windows Azure et l'associer à un certificat SSL, vous devez suivre les étapes ci-après.

  1. Obtenez un certificat SSL auprès d'une autorité de certification. Pour plus d'informations, consultez Obtenir un certificat SSL.

  2. Ajoutez le certificat au magasin de certificats du service hébergé. Pour plus d'informations, consultez la section Télécharger le certificat sur Windows Azure.

  3. Ajoutez l'empreinte numérique du certificat au fichier de configuration du service. Pour plus d'informations, consultez la section Ajouter l'empreinte numérique du certificat au fichier de configuration du service..

  4. Mettez à jour le fichier de définition de service pour identifier le certificat auprès du service hébergé. Pour plus d'informations, consultez la section Ajouter le certificat au fichier de définition de service.

  5. Configurez le point de terminaison HTTPS dans votre fichier de définition de service, et associez-le au certificat. Pour plus d'informations, consultez la section Configurer le point de terminaison HTTPS.

  6. Installez un enregistrement CNAME pour le nom de domaine sur lequel le certificat SSL est émis pour rediriger le trafic vers le service. Pour plus d'informations sur la configuration de CNAME, consultez Configuration d'un nom de domaine personnalisé pour un service de cloud computing.

Lors du test de votre point de terminaison HTTPS dans l'environnement de développement, toute authentification se produit avec un certificat auto-signé fourni pour 127.0.0.1. Pour plus d'informations, consultez la section intitulée Tester un point de terminaison HTTPS dans l'émulateur de calcul plus loin dans cette rubrique.

Un certificat SSL utilisé pour aider à sécuriser un point de terminaison HTTPS dans Windows Azure doit avoir les fonctionnalités suivantes :

  • Le certificat doit contenir une clé privée.

  • L'objectif du certificat doit être Authentification du serveur.

  • Le nom du sujet du certificat doit correspondre au nom de domaine utilisé pour accéder au service.

  • Requiert une taille minimale de clé de chiffrement de 2048 bits.

noteRemarque
Si vous utilisez Windows Azure Tools pour Microsoft Visual Studio pour développer votre service, vous pouvez configurer un point de terminaison HTTPS via les pages de propriétés pour votre rôle.

Windows Azure fournit un magasin de certificats sécurisé où vous pouvez conserver les certificats de votre service hébergé. Lorsque vous associez un certificat à votre service et téléchargez le certificat sur le magasin, Windows Azure déploie automatiquement le certificat sur les machines virtuelles sur lesquels vos instances de rôle s'exécutent. Pour plus d'informations sur le magasin de certificats, consultez Gérer les certificats.

Pour télécharger votre certificat sur le magasin de certificats, suivez les étapes décrites dans Ajouter un nouveau certificat au magasin de certificats.

L'empreinte de certificat du fichier de configuration de service s'apparie au nom logique du certificat que vous avez fourni dans le fichier de définition de service, ainsi qu'avec le certificat du magasin. La conservation de l'empreinte numérique dans le fichier de configuration de service permet de maintenir les données séparées du package de service. Cela permet à vous-même ou à un responsable informatique de mettre à jour le certificat sans avoir à redéployer le service.

Pour afficher le certificat et son empreinte numérique dans le fichier de configuration de service, modifiez le fichier de configuration et ajoutez la collection d'Certificates à l'entrée correspondant à votre rôle. Ajoutez un élément Certificate à la collection Certificates, puis spécifiez le nom logique pour le certificat. Veillez à utiliser le même nom que celui spécifié dans le fichier de définition de service. Enfin, spécifiez l'empreinte numérique du certificat et l'algorithme utilisé pour générer l'empreinte numérique, comme illustré dans cet exemple :


<ServiceConfiguration serviceName="MyService">
  <Role name=" MyWorkerRole">
    <Instances count="5" />    
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <Certificates>
      <Certificate name="MySSLCert" thumbprint="8420C0773626D5137A820156EB5BD9D6FDB9BEE9" thumbprintAlgorithm="sha1"/>
    </Certificates>  
  </Role>
</ServiceConfiguration>

Pour plus d'informations sur la manière d'obtenir l'empreinte numérique d'un certificat, consultez la section « Création d'un certificat X.509 v3 » de Créer un certificat de service pour Windows Azure.

Pour associer un certificat à un point de terminaison HTTPS, vous devez fournir un nom logique pour le certificat qui sera utilisé pour l'identifier dans votre service. Vous devez également indiquer où le certificat est enregistré sur la machine virtuelle qui exécute une instance de votre rôle.

Dans votre fichier de définition de service, ajoutez l'élément Certificates à la définition de votre rôle. Dans la collection Certificates, ajoutez une entrée pour votre certificat, comme indiqué dans cet exemple :


  <WorkerRole name="MyWorkerRole" vmsize="Small">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      . . .
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

Dans cet exemple, l'emplacement de magasin a la valeur LocalMachine et le nom de magasin la valeur My. Ces deux attributs indiquent à quel emplacement de la machine virtuelle, le certificat (identifié ici comme MySSLCert) sera installé.

Vous pouvez sélectionner le nom de votre choix pour l'attribut name du certificat. Vous utiliserez ce nom uniquement pour faire référence au certificat dans la définition du point de terminaison HTTPS et dans le fichier de configuration de service.

Pour ajouter un point de terminaison HTTPS à votre rôle, modifiez votre fichier de définition de service et ajoutez un élément InputEndpoint à la collection Endpoints de votre rôle. Spécifiez un nom pour le point de terminaison, le protocole (HTTPS) et le port. Spécifiez ensuite le nom logique du certificat que vous avez défini dans la collection Certificates du rôle.

La procédure suivante montre comment ajouter un point de terminaison d'entrée HTTP pour un rôle Web qui écoute sur le port 80 et définit également un point de terminaison HTTPS qui écoute sur le port 443 :

  1. Ouvrez le fichier ServiceDefinition.csdef de votre service dans l'éditeur de texte.

  2. Ajoutez l'élément de la collection Certificates qui contient un élément Certificate à l'élément rôle du rôle sécurisé à l'aide de SSL. Définissez l'attribut nom avec le nom de votre certificat. Définissez les attributs storeLocation et storeName pour spécifier l'emplacement du certificat sur la machine virtuelle.

        
    <Certificates>
       <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    
    
  3. Ajoutez l'élément de la collection Endpoints qui contient les éléments InputEndpoint à l'élément rôle du rôle sécurisé à l'aide de SSL. Définissez l'attribut certificate du point de terminaison d'entrée de HttpsIn pour qu'il corresponde au nom de certificat spécifié dans la collection de certificats.

       
    <Endpoints>
       <InputEndpoint name="HttpIn" protocol="http" port="80" />
       <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    
    
  4. Enregistrez le fichier.

La définition complète de service doit ressembler à l'exemple suivant.


<ServiceDefinition name="MyService">
  <WorkerRole name="MyWorkerRole">
    <ConfigurationSettings>
      . . .
    </ConfigurationSettings>
    <LocalResources>
      . . .
    </LocalResources>
    <Endpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="MySSLCert" />
    </Endpoints>
    <Certificates>
      <Certificate name="MySSLCert" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
  </WorkerRole>
</ServiceDefinition>

Par défaut, l'émulateur de calcul repose sur un certificat auto-signé pour l'adresse IP 127.0.0.1, qui correspond à localhost. S'il y a eu un problème lors de l'installation ou de la configuration du certificat configuré dans les étapes précédentes, l'émulateur de calcul utilise par défaut l'authentification du certificat auto-signé au lieu de votre certificat personnalisé. Si votre déploiement utilise par défaut un certificat SSL pour 127.0.0.1 bien que vous ayez défini un autre certificat, vérifiez que votre certificat personnalisé ne comporte aucune erreur et qu'il est correctement installé.

Par défaut, le certificat auto-signé utilisé par l'émulateur de calcul n'est pas émis par une autorité de certification racine. Lorsque vous accédez au point de terminaison HTTPS, vous recevez une erreur de certificat à moins que vous n'ayez ajouté le certificat au magasin Autorités de certification racine de confiance sur l'ordinateur local. Vous pouvez ignorer l'erreur ou vous pouvez ajouter le certificat à la racine de confiance pour l'éliminer.

Lors de l'exécution du service hébergé dans l'émulateur de calcul Windows Azure, le port SSL peut être défini avec une valeur autre que 443 (souvent 444 ou 445). Si un port que vous spécifiez n'est pas disponible, pour un point de terminaison 443 HTTPS, l'émulateur de calcul incrémente le numéro de port jusqu'à ce qu'il en trouve un qui soit libre.

Pour utiliser le port 443, vous devez arrêter l'application ou le site Web qui utilise le port, quitter l'émulateur de calcul et le redémarrer pour recharger la liste des ports disponibles. L'arrêt et le redémarrage de l'émulateur ne rechargent pas la liste des ports disponibles.

Pour déterminer si le port 443 est utilisé, vous pouvez ouvrir une invite de commandes et utiliser la commande NETSTAT. Pour plus d'informations sur la commande NETSTAT, consultez Netstat.

Si vous n'avez pas de certificat qui a été émis par une autorité de certification, vous pouvez générer un certificat auto-signé utilisable avec votre service Windows Azure.

noteRemarque
Ce certificat auto-signé est indépendant de celui utilisé par l'environnement de développement. Ce certificat est fourni pour vous et utilisé pour l'authentification dans l'environnement de développement uniquement.

Lorsque vous accédez à un point de terminaison HTTPS associé à un certificat auto-signé dans Windows Azure, une erreur de certificat s'affiche dans le navigateur. L'utilisation d'un certificat signé par une autorité de certification supprime le problème ; en attendant, vous pouvez ignorer l'erreur.

Voir aussi

Afficher:
© 2014 Microsoft