Configuration de TLS pour une application dans Azure
Important
Cloud Services (classique) est désormais déconseillé pour tous les clients depuis le 1er septembre 2024. Tous les déploiements existants en cours d’exécution seront arrêtés par Microsoft et les données seront définitivement perdues à partir d’octobre 2024. Les nouveaux déploiements doivent utiliser le nouveau modèle de déploiement basé sur Azure Resource Manager Azure Cloud Services (support étendu) .
Le chiffrement Transport Layer Security (TLS), précédemment connu sous le nom Secure Socket Layer (SSL), est la méthode de sécurisation la plus couramment utilisée pour envoyer des données sécurisées sur 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 TLS/SSL pour sécuriser votre application.
Notes
Les procédures décrites dans cette tâche s’appliquent à Azure Cloud Services ; pour App Services, consultez cette page.
Cette tâche utilise un déploiement de production. Des informations sur l’utilisation d’un déploiement intermédiaire sont fournies à la fin de cet article.
Si vous n’avez pas encore créé de service cloud, commencez par lire Comment créer et déployer un service cloud Azure (classique).
Étape 1 : Obtenir un certificat TLS/SSL
Pour configurer TLS pour une application, vous devez d’abord obtenir un certificat TLS/SSL signé par une autorité de certification (CA), qui est un partenaire approuvé pour l’émission de certificats. Si vous ne disposez pas encore d’un tel certificat, vous devez en obtenir un auprès d’une société qui commercialise des certificats TLS/SSL.
Le certificat TLS/SSL doit répondre aux prérequis suivants dans Azure :
- Le certificat doit contenir une clé publique.
- 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).
- Le nom d'objet du certificat doit correspondre au domaine servant à accéder au service cloud. Vous ne pouvez pas obtenir de certificat TLS/SSL auprès d’une autorité de certification (CA) pour le domaine cloudapp.net. Vous devez acquérir un nom de domaine personnalisé à utiliser pour accéder à votre 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. 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.
- Le certificat doit utiliser au minimum un chiffrement à 2048 bits.
Dans le cadre d’un test, vous pouvez créer et utiliser un certificat auto-signé. Un certificat auto-signé n’est pas authentifié par une autorité de certification et peut utiliser le domaine cloudapp.net comme URL du site web. 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.
Ensuite, vous devez ajouter des informations sur le certificat dans votre définition de service et dans les fichiers de configuration de service.
Étape 2 : modification des fichiers de définition de service et de configuration
Votre application doit être configurée pour utiliser le certificat, et un point de terminaison HTTPS doit être ajouté. Suite à cette opération, les fichiers de définition de service et de configuration de service doivent être mis à jour.
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) :
<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 Certificats définit le nom du certificat, son emplacement et le nom du magasin dans lequel il se trouve.
Les autorisations (attribut
permissionLevel
) peuvent être définies sur les valeurs suivantes :Valeur de l’autorisation Description limitedOrElevated (Par défaut) Tous les processus de rôle peuvent accéder à la clé privée. elevated Seuls les processus élevés peuvent accéder à la clé privée. Dans votre fichier de définition du service, ajoutez un élément InputEndpoint dans la section Endpoints pour activer HTTPS :
<WebRole name="CertificateTesting" vmsize="Small"> ... <Endpoints> <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="SampleCertificate" /> </Endpoints> ... </WebRole>
Dans votre fichier de définition du service, ajoutez un élément Binding dans la section Sites. Cet élément ajoute une liaison HTTPS pour mapper le point de terminaison à votre 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 du service, mais vous devez encore ajouter les informations relatives au certificat dans le fichier de configuration du service.
Dans votre fichier de configuration de service (CSCFG), ServiceConfiguration.Cloud.cscfg, ajoutez la valeur de votre certificat dans Certificats. L’exemple de code suivant fournit des détails sur la section Certificats, à l’exception de la valeur de l’empreinte numérique.
<Role name="Deployment"> ... <Certificates> <Certificate name="SampleCertificate" thumbprint="9427befa18ec6865a9ebdc79d4c38de50e6316ff" thumbprintAlgorithm="sha1" /> <Certificate name="CAForSampleCertificate" thumbprint="79d4c38de50e6316ff9427befa18ec6865a9ebdc" thumbprintAlgorithm="sha1" /> </Certificates> ... </Role>
(Cet exemple utilise sha1 pour l’algorithme d’empreinte numérique. Spécifiez la valeur appropriée pour l’algorithme d’empreinte numérique de votre certificat.)
Maintenant que vous avez mis à jour les fichiers de définition et de configuration du service, préparez votre déploiement afin de le charger dans Azure. Si vous utilisez cspack, n’utilisez pas l’indicateur /generateConfigurationFile, car cela remplacerait les informations de certificat que vous avez insérées.
Étape 3 : Téléchargement d'un certificat
Connectez-vous au portail Azure et...
Dans la section Toutes les ressources du portail, sélectionnez votre service cloud.
Sélectionnez Certificats.
Cliquez sur Charger en haut de la zone de certificats.
Indiquez le fichier et le mot de passe, puis cliquez sur Charger en bas de la zone de saisie de données.
Étape 4 : connexion à l’instance de rôle à l’aide de HTTPS
Maintenant que votre déploiement est opérationnel dans Azure, vous pouvez vous y connecter via HTTPS.
Sélectionnez l’l’URL du site pour ouvrir le navigateur web.
Dans votre navigateur Web, modifiez le lien pour utiliser HTTPS au lieu de HTTP, puis accédez à la 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. Pour remédier à ce problème, utilisez un certificat signé par une autorité de certification approuvée. En attendant, vous pouvez ignorer cette erreur. (Une autre possibilité est d'ajouter le certificat auto-signé au magasin de certificats d'autorité de certification approuvé de l'utilisateur.)
Conseil
Si vous voulez utiliser TLS 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. 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/
Créez un certificat avec le nom commun (CN) similaire à l’URL basée sur GUID (par exemple, 328187776e774ceda8fc57609d404462.cloudapp.net). Utilisez le portail pour ajouter le certificat à votre service cloud intermédiaire. 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.
Étapes suivantes
- Configuration générale de votre service cloud.
- Découvrez comment déployer un service cloud.
- Configurez un nom de domaine personnalisé.
- Gérez votre service cloud.