Configuration de SSL pour une application dans AzureConfiguring SSL for an application in Azure

Le chiffrement SSL (Secure Socket Layer) est la méthode de sécurisation la plus couramment utilisée pour envoyer des données sécurisées sur Internet.Secure Socket Layer (SSL) encryption is the most commonly used method of securing data sent across the internet. Cette tâche présente la spécification d'un point de terminaison HTTPS pour un rôle Web et le téléchargement d'un certificat SSL pour sécuriser votre application.This common task discusses how to specify an HTTPS endpoint for a web role and how to upload an SSL certificate to secure your application.

Notes

Les procédures décrites dans cette tâche s’appliquent à Azure Cloud Services ; pour App Services, consultez cette page.The procedures in this task apply to Azure Cloud Services; for App Services, see this.

Cette tâche utilise un déploiement de production.This task uses a production deployment. Vous trouverez des informations sur l’utilisation d’un déploiement intermédiaire à la fin de cette rubrique.Information on using a staging deployment is provided at the end of this topic.

Lisez tout d’abord ceci si vous n’avez pas encore créé de service cloud.Read this first if you have not yet created a cloud service.

Étape 1 : Obtenir un certificat SSLStep 1: Get an SSL certificate

Pour configurer le chiffrement SSL pour une application, vous devez d’abord obtenir un certificat SSL signé par une autorité de certification, un tiers approuvé qui émet des certificats à cet effet.To configure SSL for an application, you first need to get an SSL certificate that has been signed by a Certificate Authority (CA), a trusted third party who issues certificates for this purpose. Si vous n’en possédez pas, vous devez en obtenir un auprès de la société qui vend des certificats SSL.If you do not already have one, you need to obtain one from a company that sells SSL certificates.

Le certificat SSL doit répondre aux prérequis suivants dans Azure :The certificate must meet the following requirements for SSL certificates in Azure:

  • Le certificat doit contenir une clé privée.The certificate must contain a private key.
  • Le certificat doit être créé pour l'échange de clés et pouvoir faire l'objet d'un export au format Personal Information Exchange (.pfx).The certificate must be created for key exchange, exportable to a Personal Information Exchange (.pfx) file.
  • Le nom d'objet du certificat doit correspondre au domaine servant à accéder au service cloud.The certificate's subject name must match the domain used to access the cloud service. Vous ne pouvez pas obtenir de certificat SSL d'une autorité de certification pour le domaine cloudapp.net.You cannot obtain an SSL certificate from a certificate authority (CA) for the cloudapp.net domain. Vous devez acquérir un nom de domaine personnalisé à utiliser pour accéder à votre service.You must acquire a custom domain name to use when access your service. Lorsque vous demandez un certificat auprès d’une autorité de certification, le nom d’objet du certificat doit correspondre au nom de domaine personnalisé que vous utilisez pour accéder à votre application.When you request a certificate from a CA, the certificate's subject name must match the custom domain name used to access your application. Par exemple, si votre nom de domaine personnalisé est contoso.com, vous demandez un certificat auprès de votre autorité de certification pour * .contoso.com ou www.contoso.com.For example, if your custom domain name is contoso.com you would request a certificate from your CA for *.contoso.com or www.contoso.com.
  • Le certificat doit utiliser au minimum un chiffrement à 2048 bits.The certificate must use a minimum of 2048-bit encryption.

Dans le cadre d’un test, vous pouvez créer et utiliser un certificat auto-signé.For test purposes, you can create and use a self-signed certificate. Un certificat auto-signé n'est pas authentifié par une autorité de certification et peut utiliser le domaine cloudapp.net comme URL de site Web.A self-signed certificate is not authenticated through a CA and can use the cloudapp.net domain as the website URL. Par exemple, la tâche ci-dessous utilise un certificat auto-signé dans lequel le nom commun utilisé dans le certificat est sslexample.cloudapp.net.For example, the following task uses a self-signed certificate in which the common name (CN) used in the certificate is sslexample.cloudapp.net.

Ensuite, vous devez ajouter des informations sur le certificat dans votre définition de service et dans les fichiers de configuration de service.Next, you must include information about the certificate in your service definition and service configuration files.

Étape 2 : modification des fichiers de définition de service et de configurationStep 2: Modify the service definition and configuration files

Votre application doit être configurée pour utiliser le certificat, et un point de terminaison HTTPS doit être ajouté.Your application must be configured to use the certificate, and an HTTPS endpoint must be added. Suite à cette opération, les fichiers de définition de service et de configuration de service doivent être mis à jour.As a result, the service definition and service configuration files need to be updated.

  1. Dans votre environnement de développement, ouvrez le fichier de définition du service (CSDEF), ajoutez une section Certificates dans la section WebRole, puis ajoutez les informations qui suivent sur le certificat (et les certificats intermédiaires) :In your development environment, open the service definition file (CSDEF), add a Certificates section within the WebRole section, and include the following information about the certificate (and intermediate certificates):

     <WebRole name="CertificateTesting" vmsize="Small">
     ...
         <Certificates>
             <Certificate name="SampleCertificate"
                         storeLocation="LocalMachine"
                         storeName="My"
                         permissionLevel="limitedOrElevated" />
             <!-- IMPORTANT! Unless your certificate is either
             self-signed or signed directly by the CA root, you
             must include all the intermediate certificates
             here. You must list them here, even if they are
             not bound to any endpoints. Failing to list any of
             the intermediate certificates may cause hard-to-reproduce
             interoperability problems on some clients.-->
             <Certificate name="CAForSampleCertificate"
                         storeLocation="LocalMachine"
                         storeName="CA"
                         permissionLevel="limitedOrElevated" />
         </Certificates>
     ...
     </WebRole>
    

    La section Certificates définit le nom du certificat, son emplacement et le nom du magasin dans lequel il se trouve.The Certificates section defines the name of our certificate, its location, and the name of the store where it is located.

    Les autorisations (attribut permissionLevel) peuvent être définies sur les valeurs suivantes :Permissions (permissionLevel attribute) can be set to one of the following values:

    Valeur de l’autorisationPermission Value DescriptionDescription
    limitedOrElevatedlimitedOrElevated (Par défaut) Tous les processus de rôle peuvent accéder à la clé privée.(Default) All role processes can access the private key.
    elevatedelevated Seuls les processus élevés peuvent accéder à la clé privée.Only elevated processes can access the private key.
  2. Dans votre fichier de définition du service, ajoutez un élément InputEndpoint dans la section Endpoints pour activer HTTPS :In your service definition file, add an InputEndpoint element within the Endpoints section to enable HTTPS:

     <WebRole name="CertificateTesting" vmsize="Small">
     ...
         <Endpoints>
             <InputEndpoint name="HttpsIn" protocol="https" port="443"
                 certificate="SampleCertificate" />
         </Endpoints>
     ...
     </WebRole>
    
  3. Dans votre fichier de définition du service, ajoutez un élément Binding dans la section Sites.In your service definition file, add a Binding element within the Sites section. Cet élément ajoute une liaison HTTPS pour mapper le point de terminaison à votre site :This element adds an HTTPS binding to map the endpoint to your site:

     <WebRole name="CertificateTesting" vmsize="Small">
     ...
         <Sites>
             <Site name="Web">
                 <Bindings>
                     <Binding name="HttpsIn" endpointName="HttpsIn" />
                 </Bindings>
             </Site>
         </Sites>
     ...
     </WebRole>
    

    Toutes les modifications nécessaires ont été apportées au fichier de définition de service, mais vous devez encore y ajouter les informations de certificat.All the required changes to the service definition file have been completed; but, you still need to add the certificate information to the service configuration file.

  4. Dans votre fichier de configuration de service (CSCFG), ServiceConfiguration.Cloud.cscfg, ajoutez la valeur de votre certificat dans Certificats.In your service configuration file (CSCFG), ServiceConfiguration.Cloud.cscfg, add a Certificates value with that of your certificate. L’exemple de code suivant fournit des détails sur la section Certificats, à l’exception de la valeur de l’empreinte numérique.The following code sample provides details of the Certificates section, except for the thumbprint value.

     <Role name="Deployment">
     ...
         <Certificates>
             <Certificate name="SampleCertificate"
                 thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff"
                 thumbprintAlgorithm="sha1" />
             <Certificate name="CAForSampleCertificate"
                 thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc"
                 thumbprintAlgorithm="sha1" />
         </Certificates>
     ...
     </Role>
    

(Cet exemple utilise sha1 comme algorithme d’empreinte numérique.(This example uses sha1 for the thumbprint algorithm. Spécifiez la valeur correspondant à l'algorithme d'empreinte numérique de votre certificat.)Specify the appropriate value for your certificate's thumbprint algorithm.)

Maintenant que les fichiers de définition du service et de configuration de service ont été mis à jour, créez un package pour votre déploiement afin de le télécharger dans Azure.Now that the service definition and service configuration files have been updated, package your deployment for uploading to Azure. Si vous utilisez cspack, n’utilisez pas l’indicateur /generateConfigurationFile, car les informations de certificat que vous venez juste d’entrer seraient écrasées.If you are using cspack, don't use the /generateConfigurationFile flag, as that will overwrite the certificate information you just inserted.

Étape 3 : Téléchargement d'un certificatStep 3: Upload a certificate

Connectez-vous au portail Azure et...Connect to the Azure portal and...

  1. Dans la section Toutes les ressources du portail, sélectionnez votre service cloud.In the All resources section of the Portal, select your cloud service.

    Publier votre service cloud

  2. Cliquez sur Certificats.Click Certificates.

    Cliquer sur l’icône Certificats

  3. Cliquez sur Charger en haut de la zone de certificats.Click Upload at the top of the certificates area.

    Cliquez sur l’élément de menu de chargement

  4. Fournissez le fichier, entrez le mot de passe, puis cliquez sur Charger en bas de la zone de saisie de données.Provide the File, Password, then click Upload at the bottom of the data entry area.

Étape 4 : connexion à l’instance de rôle à l’aide de HTTPSStep 4: Connect to the role instance by using HTTPS

Maintenant que votre déploiement est opérationnel dans Azure, vous pouvez vous y connecter via HTTPS.Now that your deployment is up and running in Azure, you can connect to it using HTTPS.

  1. Cliquez sur l’URL du site pour ouvrir le navigateur web.Click the Site URL to open up the web browser.

    Cliquez sur l'URL du site

  2. Dans votre navigateur Web, modifiez le lien pour utiliser HTTPS au lieu de HTTP, puis accédez à la page.In your web browser, modify the link to use https instead of http, and then visit the page.

    Notes

    Si vous utilisez un certificat auto-signé, lorsque vous accédez à un point de terminaison HTTPS qui lui est associé, vous pourriez obtenir une erreur de certificat dans le navigateur.If you are using a self-signed certificate, when you browse to an HTTPS endpoint that's associated with the self-signed certificate you may see a certificate error in the browser. Pour remédier à ce problème, utilisez un certificat signé par une autorité de certification approuvée. En attendant, vous pouvez ignorer cette erreur.Using a certificate signed by a trusted certification authority eliminates this problem; in the meantime, you can ignore the error. (Une autre possibilité est d'ajouter le certificat auto-signé au magasin de certificats d'autorité de certification approuvé de l'utilisateur.)(Another option is to add the self-signed certificate to the user's trusted certificate authority certificate store.)

    Aperçu du site

    Conseil

    Si vous voulez utiliser SSL pour un déploiement intermédiaire au lieu d'un déploiement de production, vous devez d'abord déterminer l'URL utilisée pour le déploiement intermédiaire.If you want to use SSL for a staging deployment instead of a production deployment, you'll first need to determine the URL used for the staging deployment. Une fois le service cloud déployé, l’URL de l’environnement intermédiaire est déterminée par le GUID ID de déploiement au format suivant : https://deployment-id.cloudapp.net/Once your cloud service has been deployed, the URL to the staging environment is determined by the Deployment ID GUID in this format: https://deployment-id.cloudapp.net/

    Créez un certificat avec le nom commun (CN) similaire à l’URL basée sur GUID (par exemple, 328187776e774ceda8fc57609d404462.cloudapp.net).Create a certificate with the common name (CN) equal to the GUID-based URL (for example, 328187776e774ceda8fc57609d404462.cloudapp.net). Utilisez le portail pour ajouter le certificat à votre service cloud intermédiaire.Use the portal to add the certificate to your staged cloud service. Ensuite, ajoutez les informations du certificat à vos fichiers CSDEF et CSCFG, recréez le package de votre application et mettez à jour votre déploiement intermédiaire pour utiliser le nouveau package.Then, add the certificate information to your CSDEF and CSCFG files, repackage your application, and update your staged deployment to use the new package.

Étapes suivantesNext steps