IIS : Activer la gestion à distance d'IIS

Vous pouvez activer la gestion à distance de Windows PowerShell pour faciliter la gestion à distance depuis un service distant.

Jason Helmick

Avez-vous déjà souhaité gérer un serveur IIS à distance, de modifier sa configuration ou d'ajouter un site Web simple — et le faire à distance ? Pour des raisons évidentes de sécurité, vous ne peut pas juste ouvrir le Gestionnaire des services IIS et se connecter à un serveur distant. Chaque serveur IIS, que vous avez l'intention de gérer doit avoir la gestion à distance activée, configurée et assignés un certificat pour le protocole HTTPS.

En utilisant le graphique Gestionnaire des services IIS de gestion permettant à IIS distant est rapide et facile, mais seulement si vous êtes assis sur le serveur Web ou en utilisant le protocole RDP (Remote Desktop). Si vous avez plusieurs serveurs Web nécessitant une gestion à distance — ou si, comme moi, vous utilisez Server Core — le GUI Gestionnaire des services IIS n'est pas difficile, voire même impossible.

Vous pouvez activer la gestion à distance sur n'importe quel nombre de serveurs Web distants, à l'aide de Windows PowerShell. Vous serez en mesure de procéder à autant de serveurs Web que vous avez besoin, tout à la fois. Vous allez utiliser Windows PowerShell avec une fonction spéciale appelée Windows PowerShell distante.

Vous devrez activer l'accès distant Windows PowerShell sur tous les serveurs IIS. Il n'y a aucun moyen d'éviter cela. La meilleure façon d'activer l'accès distant est à travers un objet de stratégie de groupe (GPO). Si vous ne savez pas à faire ou besoin de plus d'informations sur le processus, découvrez l'eBook gratuit, "Secrets de l'accès distant PowerShell, » par Don Jones et Dr. Tobias Weltner.

Avant de dire, « Je ne suis pas autorisé à faire cela, » s'asseoir et lire ce guide. Mis en place dans un environnement de test et invitez vos amis de sécurité à l'examiner et obtenir une autorisation afin de permettre l'accès distant. Si vos serveurs Web sont exécutent sur Windows Server 2012, vous avez déjà accès à distance activé. Si ce n'est pas le cas, vous devrez remplir ceci avant d'essayer les étapes décrites ici.

Windows PowerShell remoting est entièrement sécurisé et vous en aurez besoin pour de nombreuses tâches de gestion liées à IIS à l'avenir. Le processus pour permettre la gestion à distance n'est pas compliqué, mais il y a plusieurs étapes. Voici à quoi s'attendre :

  1. Créer une session Windows PowerShell pour chacun des serveurs
  2. Installer le Service IIS de gestion Web (WMSvc)
  3. Activez le WMSvc IIS
  4. Commencer le WMSvc IIS
  5. Remplacer le certificat temporaire
  6. Se connecter en utilisant le Gestionnaire des services IIS

Dans cet exemple, je vais permettre télégestion sur quatre serveurs IIS nommé Web1 et Web2, Web3 Web4 — tous dans le même temps. Après l'obtention de leur travail, je vais remplacer le certificat temporaire avec un certificat approuvé par les Services de certificats Active Directory (AD CS).

1. Créer des sessions de communication à distance Windows PowerShell pour les serveurs Web

La première étape consiste à créer une session de communication à distance Windows PowerShell pour les serveurs Web. Commencez par créer une variable « $Servers » qui contient les noms d'ordinateur des serveurs Web. Ensuite, créer et stocker les sessions dans une variable « $Sessions » :

PS> C:\> $Servers = 'web1', 'web2', 'web3', 'web4' PS> C:\> $Sessions = New-PSSession –ComputerName $Servers

Vous aurez besoin de ces deux variables tout au long du processus. Don' t essayez de raccourcir ce d'un simple One-Liner. Vous pouvez remplir les $Servers d'un fichier texte, fichier CSV ou d'Active Directory à l'aide de la cmdlet Get-ADComputer, mais c'est un autre sujet.

2. Installer le WMSvc IIS

Le WMSvc d'IIS est un composant supplémentaire, que vous devrez ajouter à IIS. En utilisant les sessions de communication à distance, Windows PowerShell , c'est facile (la première ligne ne sera pas nécessaire si vous utilisez Windows Server 2012) :

PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Import-Module ServerManager} PS C:\> Invoke-Command –Session $Sessions –ScriptBlock {Add-WindowsFeature Web-Mgmt-Service}

À ce stade, vous avez installé le WMSvc IIS. Activation du service est l'étape suivante.

3. Activez le WMSvc IIS

Les paramètres par défaut pour le service de gestion sont définis pour autoriser les informations d'identification Windows, utilisez le port 8172 et appliquer un certificat temporaire. Utilisez ces paramètres pour l'instant et changer le certificat temporaire à une confiance à la fin de ce processus. Pour activer le service de gestion, modifier une clé de Registre sur les serveurs Web distants :

PS C:\> Invoke-command –Session $Sessions -ScriptBlock{Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1}

Maintenant que le service de gestion est activé, vous pouvez l'avoir commencé.

4. Commencer le WMSvc IIS

Le WMSvc IIS n'est pas démarré par défaut. En effet, le service est défini sur démarrage manuel. Si vous redémarrez un serveur Web à l'avenir, ne démarre pas le service de gestion. Changer le type de démarrage sur automatique et puis démarrez le service :

PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Set-Service -name WMSVC -StartupType Automatic} PS C:\> Invoke-command –Session $Sessions -ScriptBlock {Start-service WMSVC}

À ce stade, le service de gestion s'exécute et vous permettent de gérer les serveurs Web en utilisant le Gestionnaire des services IIS. Le seul problème est que le certificat utilisé est non fiable et temporaire, donc remplacer ce certificat par une confiance.

5. Remplacer le certificat temporaire

Il existe de nombreuses options pour remplacer le certificat temporaire, y compris la nouvelle fonctionnalité IIS 8 d'avoir des certificats dans le magasin de certificats de centrale. C'est mon préféré.

Je vais passer par le processus bref de copie et installation d'un nouveau certificat depuis un fichier .pfx et en affectant ensuite les liaisons de site Web pour le nouveau certificat. Cet exemple est un certificat wildcard sur mon ordinateur local C:\_.Company.loc.pfx. Tout d'abord, copiez le certificat (fichier .pfx) sur les serveurs Web distants, puis utilisez CertUtil.exe pour installer le certificat :

PS C:\> $Servers | Foreach-Object {Copy-Item -Path C:\_.Company.loc.pfx -Destination "\\$_\c$"} PS> c:\> Invoke-Command -Session $Sessions {certutil -p P@ssw0rd -importpfx c:\_.company.loc.pfx}

Notez que j'ai envoyé le mot de passe en texte clair. Windows PowerShell remoting est entièrement cryptée et sécurisée. Une fois le certificat installé, il est important de ne pas oublier de supprimer le fichier .pfx dans les serveurs Web :

PS> $Servers | Foreach-Object {Remove-Item -Path "\\$_\c$\_.Company.loc.pfx"}

À ce stade, vous aurez besoin de l'empreinte numérique du certificat installé et vous devrez modifier la liaison pour le service de gestion. Pour ce faire, vous aurez besoin du fournisseur IIS. Commencez par charger le module WebAdministration sur les serveurs Web distants :

PS C:\> Invoke-Command -Session $Sessions {Import-Module WebAdministration}

Obtenir le certificat d'empreinte numérique pour faire une nouvelle liaison :

PS C:\> Invoke-Command -Session $Sessions {$cert = Get-ChildItem -Path Cert:\LocalMachine\My | Where {$_.subject -like "*company*"} | Select-Object -ExpandProperty Thumbprint}

Enlever l'ancienne liaison SSL :

PS C:\> Invoke-command -Session $Sessions {Remove-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Ajouter la nouvelle liaison SSL à l'aide de l'empreinte numérique du certificat :

PS C:\> Invoke-Command -Session $Sessions {Get-Item -Path "cert:\localmachine\my\$cert" | New-Item -Path IIS:\SslBindings\0.0.0.0!8172}

Maintenant vous êtes prêt à vous connecter sur les serveurs Web en utilisant le Gestionnaire des services IIS.

6. Se connecter aux serveurs Web distants en utilisant le Gestionnaire des services IIS

La dernière étape consiste à ouvrir votre Gestionnaire des services IIS, sélectionnez la Page de démarrage dans le volet gauche et dans le volet central, sélectionnez "Se connecter à un serveur". Fournir le nom du serveur et vos informations d'identification et vous verrez une nouvelle connexion affichée dans le volet de navigation du Gestionnaire des services IIS.

Parce que j'ai effectuer cette opération un peu, j'ai pris les commandes précédentes et mettez-les dans un script. Si vous pensez que vous devrez peut-être faire plus d'une fois — et je suis sûr que vous voulez, il est toujours préférable d'automatiser ce processus.

Jason Helmick

Jason Helmick a plus de 20 ans d'expérience en elle comme un auteur, formateur et consultant de l'entreprise. Comme le directeur des technologies de le Windows PowerShell à l'Interface de formation technique, il met l'accent sur l'automation avec IIS et Active Directory. Vous pouvez voir plus d'infos sur IIS dans son prochain livre de Manning Publications, "Learn Windows IIS dans un mois de déjeuners.

Contenus associés