Skip to content
VDS · Windows Server

IIS : un site sous Windows

Comment installer le serveur web IIS sur un VPS, publier votre premier site sur votre propre domaine, émettre un certificat, et éviter de vous noyer dans les journaux.

Mis à jour le 23 août 2026

IIS est le serveur web intégré de Windows Server. Il fonctionne bien pour les applications ASP.NET, pour le contenu statique et comme reverse proxy devant un service qui écoute sur un port local.

Installation

Install-WindowsFeature -Name Web-Server -IncludeManagementTools
Install-WindowsFeature Web-Asp-Net48, Web-Http-Redirect, Web-Dyn-Compression

Ouvrez les ports dans le pare-feu :

New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
New-NetFirewallRule -DisplayName "HTTPS" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

Vérifiez que la page de démarrage s'ouvre à l'adresse de votre machine depuis « Aperçu » dans le panneau /hosting/vds/m/<id>. Si ce n'est pas le cas, consultez Pare-feu Windows.

Votre premier site

Import-Module WebAdministration
New-Item -ItemType Directory C:\sites\example
Set-Content C:\sites\example\index.html "<h1>It works</h1>"

New-WebAppPool -Name "example"
New-Website -Name "example" -Port 80 -HostHeader "example.ru" `
  -PhysicalPath "C:\sites\example" -ApplicationPool "example"

L'en-tête d'hôte (-HostHeader) vous permet d'héberger plusieurs sites sur une seule adresse : IIS les distingue par domaine. Le domaine doit pointer vers l'adresse de votre machine avec un enregistrement A.

Le site n'a besoin que de permissions minimales sur le répertoire — lecture :

icacls C:\sites\example /grant "IIS AppPool\example:(OI)(CI)R" /T

Certificat HTTPS

La façon la plus simple d'obtenir un certificat gratuit est le client win-acme : téléchargez wacs.exe, exécutez-le en tant qu'administrateur et sélectionnez votre site dans la liste — il émettra le certificat, le liera au site et créera une tâche de renouvellement.

Pour vérifier les liaisons :

Get-WebBinding -Name "example"
New-WebBinding -Name "example" -Protocol https -Port 443 -HostHeader "example.ru" -SslFlags 1

Pour émettre un certificat, le port 80 doit être ouvert depuis l'extérieur — la validation du domaine passe par lui.

Une application derrière IIS

Si votre service (Node, Python, .NET Kestrel) écoute sur 127.0.0.1:5000, installez les modules URL Rewrite et Application Request Routing, activez le proxying et ajoutez ce qui suit au web.config du site :

<rule name="proxy" stopProcessing="true">
  <match url="(.*)" />
  <action type="Rewrite" url="http://127.0.0.1:5000/{R:1}" />
</rule>

Ainsi, seul IIS avec le certificat est exposé à l'extérieur, et l'application reste sur localhost.

Exploitation

Get-Website | Select-Object Name, State, PhysicalPath
Restart-WebAppPool example
Get-WebAppPoolState

Les journaux se trouvent dans C:\inetpub\logs\LogFiles et grossissent sans limite — sur un disque de 40 Go, cela s'accumule vite. Configurez la rotation dans le gestionnaire IIS (la section « Journalisation », fichiers quotidiens) et supprimez les anciens journaux avec une tâche planifiée :

Get-ChildItem C:\inetpub\logs\LogFiles -Recurse -File |
  Where-Object LastWriteTime -lt (Get-Date).AddDays(-30) | Remove-Item -Force

Erreurs courantes

  • Erreur 500.19 — un web.config corrompu ou un module manquant. La cause exacte est visible dans le texte de l'erreur si vous activez les messages détaillés pour les requêtes locales.
  • Le pool d'applications s'arrête tout seul. La protection contre les défaillances rapides s'est déclenchée : le site plante et IIS l'arrête. Cherchez la cause dans le journal des applications (Get-WinEvent -LogName Application -MaxEvents 30).
  • Le site s'ouvre par adresse mais pas par domaine. L'en-tête d'hôte ne correspond pas, ou le DNS n'a pas encore été mis à jour.
  • 403 après publication. Le pool d'applications n'a pas reçu les permissions sur le répertoire.

Gardez vos répertoires de sites hors de C:\inetpub et dans un dossier séparé tel que C:\sites — cela facilite les sauvegardes et vous permet de réinstaller le système sans perdre de données.