Introduction▲
Windows Vista inclut une nouvelle version d’Internet Information Services, il s'agit de la 7.0, qui succède côté système d'exploitation client à la version 5.1 intégrée à Windows XP Pro. La version 6.0 était quant à elle intégrée à Windows Server 2003. Le IIS nouveau cru possède de nombreuses améliorations, qui pour certaines sont très intéressantes. Je ne m'attarderai cependant pas sur celles-ci, car ce n'est pas l'objet de cet article, mais si vous souhaitez en savoir plus je vous renvoie vers le très bon site en anglais www.iis.net.
Dans cet article nous allons voir comment utiliser SSL dans IIS 7.0 sans pour autant devoir se procurer un certificat en bonne et due forme auprès d'une autorité de certification reconnue, ce qui est relativement onéreux et pas forcément indispensable quand il s'agît comme nous de l'utiliser sur une machine de développement et non dans un environnement de production. Il y a de cela presque trois ans, j'avais écrit un article sur le même sujet, mais à l'époque sous IIS 5.0 qui était livré avec Windows 2000. Voyons depuis le chemin parcouru, et apprécions sans plus tarder la simplicité qu'apporte le nouveau IIS en la matière.
I. Qu'est-ce que SSL ?▲
SSL, pour Secure Socket Layer, est un protocole de sécurité permettant d'encrypter les données échangées entre serveurs Web et client. Ce protocole est extrêmement répandu, par exemple la quasi-totalité des sites d'e-commerce l'utilisent. La mise en place de SSL sur IIS 7.0 nécessite l'emploi d'un certificat de sécurité numérique qui va servir à encoder et décoder les données chiffrées transitant dans un flux SSL.
II. Installation d'IIS 7.0▲
Remarque : quel que soit le processus que vous utilisez vous devez avoir à l'esprit que vous devez être titulaire des privilèges administrateur sur la machine sur laquelle vous souhaitez installer IIS 7.0. Pour cela en fonction du compte que vous utilisez et du paramétrage de l'UAC de Windows Vista vous devrez fournir les informations (identifiant et mot de passe) d'un compte administrateur, ou autoriser l'élévation du niveau de privilège au niveau administrateur.
Deux possibilités s'offrent ici à nous. La ligne de commande ou l'interface graphique. Voyons comment procéder, et les avantages et inconvénients des deux solutions.
La ligne de commande : Windows Vista intègre un nouvel utilitaire nommé Package Manager qui permet, entre autres, d'ajouter ou de supprimer des fonctionnalités de Windows. Grâce à cet utilitaire utilisable depuis la ligne de commande vous allez pouvoir choisir chaque fonctionnalité à installer, sans pour autant devoir dérouler les multiples sous-menus de l'installation de IIS depuis l'assistant habituel de gestion des fonctionnalités Windows. De plus, cette solution s'avère idéale pour les administrateurs qui veulent déployer IIS 7.0 sur de nombreuses machines en utilisant un simple script. Bref, je ne vais pas vous faire la promotion de la ligne de commande, mais sachez qu'ici, c'est l'option que je préfère.
Voici la commande permettant d'installer l'ensemble des fonctionnalités d'IIS 7.0 :
start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;
IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;
IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;
IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;
IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;
IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;
IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;
IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;
IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;
IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;
IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;
IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;
WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
Assistant de gestion des fonctionnalités Windows : comme pour les versions précédentes de Windows, celui-ci est accessible depuis le panneau de configuration. Ensuite il faut double-cliquer sur « Programmes et fonctionnalités ». Cliquez sur « Activer ou désactiver des fonctionnalités Windows ». Dans la liste déroulante, sélectionnez toutes les sous-fonctionnalités de « Services Internet (IIS) » que vous souhaitez installer. Après avoir coché les fonctionnalités souhaitées, il ne vous reste plus qu'à cliquer sur « OK », l'assistant va alors configurer Windows et IIS de manière adéquate.
À ce stade votre IIS est installé et fonctionnel, voyons maintenant comment générer notre certificat qui nous permettra d'utiliser SSL pour sécuriser tout ou partie d'une application web.
III. Génération d'un certificat▲
Contrairement à ce que l'on rencontrait dans les versions précédentes de IIS, 5.0 et 6.0, ici tout est fait pour rendre l'opération rapide et simplissime. Tout d'abord, allez dans le panneau de configuration, puis dans les outils d'administration. Double-cliquez sur « Gestionnaire des services Internet (IIS) » pour lancer la toute nouvelle console de gestion d'IIS 7.0. Cette opération nécessite des privilèges administrateur.
Dans la colonne de gauche, présentant l'arborescence de votre serveur IIS, placez-vous sur l'élément racine, puis double-cliquez sur « Serveur de certificats » dans la partie centrale de la console.
Dans la partie droite de la console, dans la colonne « Action », cliquez sur « Créer un certificat autosigné ». Un assistant se lance et vous demande de saisir un nom convivial pour le certificat à générer. Cliquez sur « OK ». Votre certificat est désormais créé, vous voyez à quel point cette opération est d'une grande complexité…
Vous devez maintenant voir apparaitre ce nouveau certificat dans la partie centrale de la console. Au passage, remarquez que ce certificat a une validité d'un an. En double-cliquant sur le certificat, vous affichez une fenêtre présentant les différentes caractéristiques de celui-ci. Reste maintenant à utiliser ce certificat pour sécuriser les échanges à l'aide de SSL.
IV. Mise en place du SSL▲
Nous allons devoir indiquer à IIS que nous souhaitons utiliser ce certificat pour sécuriser le flux SSL sur notre serveur. Cela s'effectue également depuis la console de gestion d'IIS. Tout d'abord, il faut sélectionner le site web sur lequel nous souhaitons activer le SSL, puis cliquer dans la colonne de droite sur « Liaisons » (« Bindings » pour les versions anglaises) puis sur le bouton « Ajouter ». Nous allons ajouter un nouveau type de liaison. Sélectionnez https dans la liste déroulante, laissez le port 443 inchangé, il s'agit du port de communication par défaut de https, le port par défaut pour http est je vous le rappelle le port 80. Sélectionnez ensuite le certificat que nous venons de créer dans la liste prévue à cet effet, cliquez sur « OK », et voilà c'est terminé.
Pour vérifier que votre site est bien accessible par le biais du protocole SSL tapez dans votre navigateur préféré l'URL de votre site, bien évidemment précédé de https et non de http. Un petit cadenas doit apparaitre sur votre navigateur signalant que la connexion est sécurisée.
Remarque : si vous utilisez IE 7.0, il est possible que votre navigateur affiche un message d'erreur vous informant que ce certificat n'est pas valide, c'est tout à fait normal. En effet ce certificat n'a pas été créé par une autorité de certification reconnue. Mais ceci n'est pas grave, car nous utilisons ce certificat à des fins de test et non en production, vous pouvez donc ignorer l'avertissement et consulter tranquillement votre site en SSL en cliquant sur « Poursuivre avec ce site Web (non recommandé) ».
Conclusion▲
Comme vous avez pu le voir, c'est absolument simplissime, depuis la version 5.0 le processus a été grandement simplifié, notamment au niveau de la génération du certificat, en effet IIS effectue désormais cette tâche de manière autonome. Vous devez savoir qu'il est possible de paramétrer très finement quelle partie de votre application doit être accédée en SSL ou non, la console de IIS vous autorise de telles configurations en accédant aux paramètres SSL de l'objet sélectionné, cela peut être par exemple un site web ou un répertoire virtuel. J'espère vous avoir montré à quel point cette opération est simple et que vous n'hésiterez plus à tester vos applications en cours de développement avec SSL lorsque cela est nécessaire. Il est évident que vu la nature de notre certificat, il ne peut servir qu'en environnement de développement, mais le processus en production avec un certificat émis par une autorité de certification dite de confiance serait à peu de chose près le même.