Comment sauvegarder et restaurer les sites web et les paramètres IIS

Oui, manipuler les sauvegardes IIS peut s’avérer complexe, surtout lors de migrations entre serveurs ou par simple précaution. Il arrive parfois qu’un site refuse de démarrer ou perde subitement ses paramètres. Savoir sauvegarder correctement tous les éléments (fichiers, configurations, certificats) vous évitera bien des soucis par la suite. Ce guide présente des méthodes éprouvées en situation réelle, notamment l’utilisation d’outils intégrés comme appcmd, PowerShell et même msdeploy, pour vous permettre de vous dépanner en cas de problème.

Comment sauvegarder et restaurer les configurations IIS sur un serveur Windows

Sauvegarde d’IIS sur un serveur Windows

Sauvegarder correctement IIS implique de récupérer les fichiers de votre site, vos certificats SSL et vos paramètres de configuration. Car soyons honnêtes : si un seul élément tombe en panne, tout le reste risque d’être compromis. Pourquoi perdre du temps à réparer manuellement les problèmes alors qu’il existe des méthodes simples pour cloner votre installation ? Sur certains serveurs, une simple sauvegarde suffit, mais sur d’autres, notamment les environnements plus complexes, une sauvegarde complète est indispensable.

Par exemple, une erreur fréquente consiste à tout copier manuellement (oui, simplement copier %SystemDrive%\inetpub\wwwroot pour les fichiers du site statique), mais cela n’inclut pas les certificats SSL ni les paramètres IIS, qui sont tout aussi essentiels. Pour y remédier, voici une solution généralement efficace :

Étape 1 : Sauvegarder les fichiers du site Web IIS

  • Copiez simplement l’intégralité du dossier inetpub\wwwroot, ou mieux encore, utilisez la Sauvegarde Windows Server pour inclure ce répertoire dans votre plan de sauvegarde.
  • Dans PowerShell, vous pouvez scripter la sauvegarde comme suit :
# Install Windows Server Backup if not installed Install-WindowsFeature -Name Windows-Server-Backup # Backup inetpub directory to a network share wbadmin start backup –backupTarget:\\srv-backup1\backup -include:c:\inetpub\wwwroot -vsscopy

Vous obtenez ainsi une copie complète des fichiers de votre site statique. Parfois, sur certaines configurations, la première tentative peut échouer, mais une nouvelle tentative ou un redémarrage du système résout souvent le problème. Ce n’est pas toujours une solution infaillible, mais c’est mieux que de tout faire manuellement.

Étape 2 : Exporter les certificats SSL

  • Obtenez la liste des certificats SSL avec la commande ` netsh http show sslcert`. Cette commande affiche toutes les liaisons SSL, au cas où.
  • Pour exporter les certificats, PowerShell vient à la rescousse :
dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | Foreach-Object { [system. IO. File]::WriteAllBytes( "\\srv-backup1\backup\$($_. Subject).pfx", ($_. Export('PFX', 'secret')) ) }

Cela crée des fichiers PFX contenant vos clés SSL. Attention : l’exportation peut ne pas être parfaite pour tous les éléments. Vérifiez donc que les certificats téléchargés fonctionnent correctement lors de leur importation. Enfin, assurez-vous que votre emplacement de sauvegarde est sécurisé : les clés privées doivent être manipulées avec précaution.

Étape 3 : Sauvegarde de la configuration IIS (paramètres)

Cette étape est souvent négligée, mais elle est cruciale. L’outil intégré appcmd simplifie grandement la tâche. Il suffit d’ouvrir une invite de commandes en tant qu’administrateur et de changer de répertoire :

cd c:\Windows\system32\inetsrv

Ensuite, exécutez la commande de sauvegarde :

appcmd add backup srv1-iis-backup-2022_03_10

Vous trouverez un nouveau dossier dans c:\Windows\system32\inetsrv\backup contenant tous vos fichiers de configuration, notamment applicationHost.config, administration.config et d’autres fichiers XML importants. Copiez simplement ce dossier dans votre emplacement de sauvegarde. C’est facile, mais n’oubliez pas de le faire régulièrement : Windows a tendance à écraser ou à archiver automatiquement ces sauvegardes afin que vous puissiez revenir en arrière si nécessaire.

Sur les serveurs plus récents (2016/2019), vous pouvez également utiliser l’applet de commande Backup-WebConfiguration de PowerShell :

Backup-WebConfiguration -Name MyBackup202203

Cette commande simplifie la sauvegarde et enregistre les paramètres dans le dossier de sauvegarde par défaut, généralement $env:Windir\System32\inetsrv\backup. Pratique si vous préférez les scripts aux commandes.

Restauration d’une configuration IIS sur un autre serveur Windows

Supposons que vous ayez une sauvegarde stockée quelque part (par exemple, sur un partage réseau ou un disque dur externe) et que vous souhaitiez la restaurer ailleurs. La procédure est simple, mais requiert une certaine attention.

Commencez par copier votre dossier de sauvegarde dans c:\windows\system32\backup sur le nouveau serveur. Vérifiez ensuite que la sauvegarde est bien visible dans la liste.

appcmd list backup

Si votre sauvegarde apparaît, vous pouvez la restaurer avec :

appcmd restore backup /stop:true srv1-iis-backup-2022_03_10

L’ option /stop:true indique à IIS de s’arrêter avant d’appliquer la configuration, ce qui permet souvent d’éviter les erreurs. Une fois l’opération terminée, votre site devrait être de nouveau opérationnel avec tous ses paramètres précédents.

Vous pouvez également effectuer une restauration avec PowerShell si vous avez utilisé Backup-WebConfiguration :

Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10

Si vous souhaitez supprimer d’anciennes sauvegardes (par exemple, faire un peu de ménage), vous pouvez exécuter :

appcmd.exe delete backup BackupName
Attention : assurez-vous que les versions d’IIS correspondent sur les deux serveurs. Vous pouvez le vérifier dans le registre :

get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring, versionstring

Assurez-vous également que tous les pools d’applications personnalisés et les certificats SSL soient importés/rendus disponibles sur le nouveau serveur. Sinon, votre site restauré risque de rester inactif.

Si l’automatisation vous intéresse, l’ outil msdeploy est une excellente option. Vous pouvez compresser tous vos sites et configurations sur une machine et les déployer sur une autre, ou même effectuer des sauvegardes incrémentales :

msdeploy -verb:sync -source:webServer, computername=192.168.100.112 -dest:package=c:\Backup\IIS\server1_iis_backup.zip

Ou sauvegardez simplement les sites/fichiers statiques individuellement :

msdeploy –verb:sync –source:contentPath="site_name.com", computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name.zip

C’est parfois un peu excessif, mais si vous voulez un clonage complet, c’est la méthode qui a fait ses preuves en conditions réelles. Préparez-vous simplement à importer les certificats et à vérifier les autorisations ensuite, car, comme toujours, Windows complique inutilement les choses.

Résumé

  • Copiez les fichiers de votre site ou utilisez la Sauvegarde Windows Server pour récupérer %SystemDrive%\inetpub\wwwroot.
  • Exportez les certificats SSL avec PowerShell ou netsh.
  • Sauvegardez les configurations IIS à l’aide d’appcmd ou de la commande Backup-WebConfiguration de PowerShell.
  • Restaurez les configurations avec appcmd restore ou Restore-WebConfiguration.
  • Pensez à utiliser msdeploy pour les sauvegardes complètes de site ou par lots, notamment en cas de migration.
  • Vérifiez toujours la compatibilité de la version d’IIS et importez les certificats SSL sur le nouvel hôte.

Conclure

La sauvegarde d’IIS peut paraître fastidieuse, mais une fois qu’on maîtrise des outils comme appcmd, PowerShell ou msdeploy, c’est beaucoup plus simple. Certes, copier manuellement les fichiers et les configurations est parfois la solution la plus simple, mais l’automatisation et une exportation correcte évitent bien des soucis par la suite. Franchement, il est judicieux de programmer des sauvegardes automatiques pour les configurations et les certificats : on ne sait jamais quand le serveur va dysfonctionner. En espérant que cela vous aide, ou au moins que cela permette à quelqu’un de gagner un temps précieux en cas de restauration.