Installer et configurer IIS 10 sur Windows Server 2022
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à installer et configurer IIS sur Windows Server 2022 dans le but de pouvoir héberger un site Web ou une application. Microsoft IIS (Internet Information Services) est le serveur web fonctionnant sous Windows Server, et qui représente une alternative à d'autres solutions populaires comme Apache ou Nginx que l'on va plutôt faire tourner sur Linux.
Lors de la mise en place de certains rôles sur Windows Server, notamment WSUS, SharePoint, ou encore un serveur de messagerie Exchange, un serveur Web IIS sera systématiquement mis en place pour héberger l'application Web. Lorsque l'on met en place un serveur Exchange et que l'on accède à ses e-mails via le Webmail (Outlook Web Access - OWA) à partir de son navigateur, on s'appuie sur le serveur web IIS.
Aujourd'hui, l'objectif est d'installer IIS 10 sur Windows Server 2022, et de voir quelques notions de base pour configurer un site dans IIS. Cet article nous servira de point de départ pour les prochains articles où nous verrons comment exploiter un peu plus IIS.
Note : IIS s'installe également sur les autres versions de Windows Server, mais aussi Windows 10 et Windows 11 !
II. Installation de IIS sur Windows Server 2022
Bien que l'installation de IIS soit possible avec PowerShell et un fichier de réponse, nous allons procéder via l'interface graphique. Lors de l'installation de IIS, il y a de nombreuses options possibles, allant même jusqu'à transformer IIS en serveur FTP. Ouvrez le gestionnaire de serveur, et cliquez sur "Gérer" puis "Ajouter des rôles et fonctionnalités".
Passez le premier écran, puis sur le second passez également sans changer le choix par défaut, à savoir "Installation basée sur un rôle ou une fonctionnalité".
Passez l'étape de sélection du serveur sans faire de changement, et au moment de choisir un rôle pour ce serveur, cochez "Web Server (IIS)" dans la liste (1) puis cliquez sur "Ajouter des fonctionnalités" (2) afin d'installer également la console de management de IIS. Ensuite, poursuivez et passez l'étape "Fonctionnalités" car nous n'avons rien à installer en supplément.
Maintenant, nous allons avoir l'opportunité de personnaliser l'installation du rôle IIS. Cliquez sur "Suivant".
Différentes fonctionnalités sont cochées par défaut. Disons qu'il y a l'essentiel pour utiliser IIS : vous pouvez laisser comme ceci. Pour des usages spécifiques, comme l'activation du WebDAV ou encore la mise en place du service FTP, il faudra cocher les options adéquates. De toute façon, il est possible d'ajouter des fonctions par la suite.
Nous sommes à la fin de l'assistant, cliquez sur "Installer" et patientez un moment.
Une fois que l'installation est terminée, je vous invite à ouvrir un navigateur puis à saisir l'adresse IP de votre serveur IIS dans la barre d'adresse. Normalement, vous devez obtenir la page par défaut de IIS, comme ceci :
Le serveur IIS est opérationnel ! Félicitations ! Regardons sa configuration d'un peu plus près...
III. Configuration de IIS 10
Pour manager le serveur IIS, nous avons la console "Gestionnaire des services Internet (IIS)" accessible à partir du menu "Outils" du gestionnaire de serveur, ou via les outils d'administration.
Cette console permet de gérer le serveur, et notamment d'effectuer les actions suivantes :
- Arrêter, démarrer ou redémarrer le serveur web IIS (sans redémarrer Windows)
- Arrêter, démarrer ou redémarrer un site (pour le mettre en ligne ou hors ligne, par exemple)
- Créer, supprimer ou modifier un site
- Installer des modules complémentaires
- Etc...
Par défaut, IIS est livré avec un site nommé "Default Web Site" et il est stocké à l'emplacement suivant :
C:\inetpub\wwwroot
D'ailleurs, dans ce répertoire nous retrouvons deux fichiers : "iisstart.htm" et "iisstart.png" correspondant au contenu de la page d'accueil par défaut que nous avons vu précédemment. Lorsque l'on effectue un clic droit sur un site, par exemple le site par défaut, on accède à un ensemble d'actions (nous en verrons quelques-unes par la suite). Dans le même esprit, lorsque l'on sélectionne le serveur IIS en lui-même ou un site, la partie de droite de la console donne accès à la configuration des différents modules de ce site.
Il faut savoir que les options ont une valeur par défaut définie au niveau du serveur en lui-même. De cette façon, lorsque l'on crée un nouveau site, il hérite de cette configuration par défaut. Toutefois, rien n'empêche de modifier la configuration au niveau du site en lui-même.
A. Modifier l'emplacement d'un site IIS
Comme je le disais précédemment, par défaut, IIS stocke les données du site par défaut dans "C:\", sur le même volume que les programmes et Windows. Il est préférable d'héberger les données du site sur un autre volume dédié à cet usage. Pour modifier l'emplacement d'un site, ou la racine d'un site si vous préférez, il faut :
- Effectuer un clic droit sur le nom du site, ici "Default Web Site"
- Sous "Gérer le site Web" (1) cliquez sur "Paramètres avancés..." (2)
Le premier paramètre de la liste se nomme "Chemin d'accès physique" et c'est lui qui nous intéresse, cela tombe bien. Cliquez sur le bouton "..." en bout de ligne pour définir un nouvel emplacement. Créez un nouveau répertoire, par exemple "www" sur un autre volume de votre serveur (sur mon serveur, je n'ai qu'un seul volume, mais vous voyez l'idée) et cliquez sur "OK".
Si c'est un site existant, vous devez copier-coller le contenu de "C:\inetpub\wwwroot" vers le nouveau chemin. Pour finir, je vous recommande de redémarrer le site web via la console IIS pour être sûr que le changement est pris en compte.
Pour redémarrer le site, il suffit d'effectuer un clic droit dessus dans la console IIS, puis sous "Gérer le site Web", cliquer sur "Redémarrer".
B. Les documents par défaut
Quand on accède à un site Web, c'est généralement le contenu de la page "index" qui est chargée, soit "index.htm", "index.html" ou encore "index.php". Néanmoins, ce n'est pas obligatoire : tout dépend de la configuration du site.
En cliquant sur le site dans la console, on peut voir à droite une section nommée "Document par défaut". Double-cliquez dessus.
Nous pouvons voir différents noms de fichiers. Lorsque l'on accède à la page d'accueil du site, on ne précise pas le nom de la page, alors IIS va regarder s'il y a l'un de ces fichiers présents dans le répertoire du site afin de le présenter au client. L'ordre est important : le premier fichier trouvé sera affiché. On peut voir aussi la valeur "Héritée", cela signifie que ces valeurs sont héritées de la configuration par défaut de IIS.
Si l'on veut que la page d'accueil du site soit "index.html" et uniquement cela, on peut sélectionner les entrées et cliquer sur "Supprimer" à droite. On obtient ce résultat :
Notre répertoire "www" est vide actuellement. On va donc créer un fichier "index.html" avec le bout de code HTML suivant :
<html>
<head></head>
<body>
<h2>IIS 10 pour IT-Connect</h2>
</body>
</html>
Ce qui donne :
Sur l'image ci-dessus, vous pouvez voir la présence du fichier "web.config". Il s'agit d'un fichier de configuration IIS propre à ce site qui a été généré suite à la modification de la configuration des options "Document par défaut" afin de prendre en compte le fait que nous avons supprimé des valeurs héritées.
Désormais, si l'on accède à la page d'accueil de notre site IIS, toujours avec l'adresse IP, on peut voir le contenu de notre page "index.html" :
Là, c'est une page HTML toute simple, mais on peut bien sûr utiliser du PHP, de l'ASP, etc... En configurant le serveur IIS en conséquence. Je vais aborder la partie PHP dans un prochain article.
IV. Comment sécuriser un serveur IIS 10 ?
Pour maintenir un bon niveau de sécurité sur son serveur IIS 10, il y a quelques règles de base à respecter.
- Utiliser le HTTPS pour accéder aux sites pour bénéficier du chiffrement, plutôt que le protocole HTTP
- Maintenir à jour le système d'exploitation Windows pour bénéficier des derniers correctifs de sécurité
- Journaliser les accès aux différents sites du serveur IIS
- Ne pas activer des fonctionnalités IIS dont vous n'avez pas besoin (comme vu lors de l'installation)
- Sauvegarder le serveur et les données des sites web
- Ne pas utiliser des pages d'erreurs trop bavardes (celles par défaut sont à éviter)
- Utiliser un système de protection pour bloquer les attaques informatiques (en local ou en amont)
Rendez-vous dans le prochain article IIS pour approfondir la configuration IIS. En attendant, je vous invite à regarder l'article ci-dessous si vous souhaitez passer un site IIS en HTTPS.
Bonjour, plutôt spécialiste de la création de logiciels, je viens d’appliquer ces quelques conseils pour mettre en service IIS 10 sur une machine WS 2022. Aucun problème jusqu’à la création de la page d’accueil personnalisée pour l’IP, ce dernier point étant raisonnablement élémentaire une fois les premières étapes suivies.
Par contre, en tentant de publier plusieurs applications ASPX anciennes ou plus récentes, provenant d’un autre serveur (IIS 7 sur un WS plus ancien), erreurs 500 systématiques, ou 404 pour une application de test créée aujourd’hui pour une première vérification.
Auriez-vous une page d’aide sur ce sujet, ou éventuellement la possibilité de m’assister pour régler ce problème, le cas échéant dans le cadre d’une prestation d’assistance que vous pourrez proposer ? C’est relativement urgent.
Cordialement,
PL
Bonjour, je me permet de répondre.
Avez vous installé le module ASP dans IIS?
IIS avec l’installation de base n’interprète pas les pages en ASPX
Bonjour,
Je viens d’installer WS2022 avec IIS10.
J’ai migré mes sites développés en ASP.NET et RAZOR. Extension serveur CSTML.
Le pool d’application est en version v4.0.30319 du CLR.NET (intégré)
Cependant mon site affiche ce message d’erreur :
Erreur du serveur dans l’application ‘/’.
Ce type de page n’est pas pris en charge.
Description : Le type de page demandé n’est pas pris en charge, car il a été explicitement interdit. L’extension ‘.cshtml’ n’est peut-être pas correcte. Vérifiez l’URL ci-dessous et assurez-vous qu’elle est correcte.
URL demandée: /tsLogin.cshtml
Informations sur la version : Version Microsoft .NET Framework :4.0.30319; Version ASP.NET :4.8.4718.0
En connaitriez vous la raison ?
Merci par avance de votre aide