...

*Cube-Host– services cloud complets!

Windows VPS : installation et configuration d’IIS

Windows VPS: installing and configuring IIS

Installation d’IIS sans composants inutiles

Via le gestionnaire de serveur : Ajouter des rôles et des fonctionnalités → Basé sur les rôles → Votre serveur → Serveur Web (IIS).

Sélectionnez le minimum pour les sites Web statiques et simples :

  • Serveur Web → Fonctionnalités HTTP générales : Contenu statique, document par défaut, erreurs HTTP ;
  • Intégrité et diagnostic : Journalisation HTTP ;
  • Sécurité : filtrage des requêtes ;
  • Performances : compression du contenu statique.

Si vous avez besoin d’ASP.NET, ajoutez Développement d’applications (.NET extensible, ASP.NET, ISAPI).

Commandes PowerShell correspondantes :

  Install-WindowsFeature Web-Server, Web-Common-Http, Web-Default-Doc, Web-Http-Errors, `
  Web-Http-Logging, Web-Filtering, Web-Stat-Compression -IncludeManagementTools
# If necessary:
# Install-WindowsFeature Web-Asp-Net45, Web-Net-Ext45, Web-ISAPI-Ext, Web-ISAPI-Filter  

Vérifiez http://localhost – la page d’accueil IIS devrait s’afficher.

Générez une CSR (demande de certificat) directement dans IIS

Ouvrez le gestionnaire IIS (InetMgr.exe) → sélectionnez votre serveur → Certificats de serveur.

1 Windows VPS

Sous Actions, cliquez sur Créer une demande de certificat… et remplissez les champs pour le nom distinctif :

Nom commun — FQDN du site web (par exemple, example.ru ou *.example.ru pour un caractère générique) ;

— Organisation/OU/Ville/État/Pays — conformément aux exigences de l’autorité de certification (CA).

2 Windows VPS

Sélectionnez un fournisseur de cryptographie et une longueur de clé (Microsoft RSA SChannel et 2048+ bits sont recommandés).

3 Windows VPS

Enregistrez la CSR dans un fichier – elle commence par —–BEGIN NEW CERTIFICATE REQUEST—–.

4 Windows VPS

Envoyez la CSR à votre autorité de certification (commerciale ou interne à l’entreprise). Si vous utilisez AD CS, téléchargez le certificat émis depuis le portail Web de l’autorité de certification.

5 Windows VPS

Alternative pour les tests : certificat auto-signé via PowerShell New-SelfSignedCertificate. Convient aux environnements de test, mais pas aux sites de production.

Importation d’un certificat dans IIS (CER/PFX) et nuances de format

Revenez à Certificats de serveur et cliquez sur Terminer la demande de certificat… – indiquez le CER émis.

6 Windows VPS

Si vous disposez de CRT + KEY, convertissez-les d’abord en PFX (un conteneur combiné avec une clé privée). Le plus simple est d’utiliser openssl :

  openssl pkcs12 -export -out target.pfx -inkey source.key -in source.crt  

Ou convertissez temporairement CRT → CER (Base-64 X.509) directement dans Windows via « Exporter » :

8 Windows VPS

Si vous importez PFX, il est préférable de le faire via le composant logiciel enfichable Certificats (ordinateur local) → Personnel. Microsoft fournit des instructions détaillées sur l’importation et l’attribution d’un certificat de site dans sa documentation officielle.

Une fois la demande de certificat terminée, le nouveau certificat apparaît dans la liste :

9 Windows VPS

Lier HTTPS au site web (liens)

Allez dans Sites web, sélectionnez le site web → Modifier les liens…

10 Windows VPS

Ajoutez une liaison :

  • Type : https
  • Adresse IP : Toutes les adresses non attribuées (ou spécifiques)
  • Port : 443
  • Nom d’hôte : Le nom de domaine complet (FQDN) de votre site Web
  • Certificat SSL : Sélectionnez le certificat importé

Pour plusieurs sites Web HTTPS sur une seule adresse IP, activez SNI (Require Server Name Indication).

11 Windows VPS

Redémarrez le site Web (ou l’ensemble de l’IIS).

12 Windows VPS

Vérifiez dans votre navigateur : le cadenas et le certificat valide pour le domaine.

13 Windows VPS

Il est judicieux d’activer immédiatement la redirection HTTP → HTTPS (réécriture d’URL) – une analyse séparée est disponible à ce sujet dans winitpro.

Ouvrez les ports et testez depuis l’extérieur

N’oubliez pas d’ouvrir les ports 80/443 dans le pare-feu Windows interne et le pare-feu/ACL externe chez le fournisseur Windows VPS :

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

Vérification à partir de l’ordinateur client :

  Test-NetConnection example.ru -Port 80
Test-NetConnection example.ru -Port 443  

TcpTestSucceeded : True – Liaison et disponibilité confirmées.

Erreurs courantes et solutions rapides

  • Le certificat n’apparaît pas dans la liste déroulante « Liaisons » – il a été importé dans « Utilisateur actuel » au lieu de « Ordinateur local → Personnel » ou sans clé privée. Importez PFX dans « Ordinateur local ».
  • NET::ERR_CERT_COMMON_NAME_INVALID – CN/SAN ne correspond pas au domaine dans le nom d’hôte ; réémettez avec le FQDN correct.
  • Seul HTTP s’ouvre – aucune liaison HTTPS ou 443 n’est fermé sur le pare-feu externe.
  • Erreur lors de l’importation de CRT – convertissez en CER ou PFX (voir ci-dessus).
  • Plusieurs sites Web sur une seule adresse IP – Activez SNI dans la liaison et utilisez des noms d’hôte différents.

Aide-mémoire : IIS + site Web + HTTPS en quelques minutes

  # 1) Installing IIS with basic modules
Install-WindowsFeature Web-Server, Web-Common-Http, Web-Default-Doc, Web-Http-Errors, `
  Web-Http-Logging, Web-Filtering, Web-Stat-Compression -IncludeManagementTools

# 2) Site catalog
New-Item -ItemType Directory -Path "D:\sites\example.ru\wwwroot" -Force | Out-Null

# 3) Website on HTTP
Import-Module WebAdministration
New-Website -Name "example.ru" -Port 80 -PhysicalPath "D:\sites\example.ru\wwwroot" -IPAddress "*" -HostHeader "example.ru"

# 4) Import certificate (example for PFX; specify your path/password)
# $pwd = ConvertTo-SecureString "PFXpassword" -AsPlainText -Force
# Import-PfxCertificate -FilePath "C:\certs\example.pfx" -CertStoreLocation Cert:\LocalMachine\My -Password $pwd
# $thumb = (Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -like "*CN=example.ru*"}).Thumbprint

# 5) HTTPS binding (via netsh http)
# New-WebBinding -Name "example.ru" -Protocol https -Port 443 -HostHeader "example.ru"
# netsh http add sslcert hostnameport=example.ru:443 certhash=$thumb appid="{00112233-4455-6677-8899-AABBCCDDEEFF}"

# 6) Firewall
New-NetFirewallRule -DisplayName "HTTP (80)"  -Direction Inbound -Protocol TCP -LocalPort 80  -Action Allow
New-NetFirewallRule -DisplayName "HTTPS (443)" -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow