...

*Cube-Host– Volle Cloud Dienste!!

Windows VPS: Installation und Konfiguration von IIS

Windows VPS: installing and configuring IIS

Installieren von IIS ohne unnötige Komponenten

Über den Server-Manager: Rollen und Features hinzufügen → Rollenbasiert → Ihr Server → Webserver (IIS).

Wählen Sie das Minimum für statische und einfache Websites:

  • Webserver → Allgemeine HTTP-Features: Statischer Inhalt, Standarddokument, HTTP-Fehler;
  • Integrität und Diagnose: HTTP-Protokollierung;
  • Sicherheit: Anforderungsfilterung;
  • Leistung: Komprimierung statischer Inhalte.

Wenn Sie ASP.NET benötigen, fügen Sie Anwendungsentwicklung (.NET-Erweiterbarkeit, ASP.NET, ISAPI) hinzu.

Entsprechende PowerShell-Befehle:

  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  

Überprüfen Sie http://localhost – die IIS-Startseite sollte angezeigt werden.

Generieren Sie eine CSR (Zertifikatsanforderung) direkt in IIS

Öffnen Sie den IIS-Manager (InetMgr.exe) → wählen Sie Ihren Server aus → Serverzertifikate.

1 Windows VPS

Klicken Sie unter Aktionen auf Zertifikatsanforderung erstellen… und füllen Sie die Felder für den Distinguished Name aus:

Common Name — FQDN der Website (z. B. example.ru oder *.example.ru für Wildcard);

— Organisation/OU/Stadt/Bundesland/Land — gemäß den Anforderungen der Zertifizierungsstelle (CA).

2 Windows VPS

Wählen Sie einen Kryptografieanbieter und eine Schlüssellänge aus (empfohlen werden Microsoft RSA SChannel und 2048+ Bit).

3 Windows VPS

Speichern Sie die CSR in einer Datei – sie beginnt mit —–BEGIN NEW CERTIFICATE REQUEST—–.

4 Windows VPS

Senden Sie die CSR an Ihre Zertifizierungsstelle (kommerziell oder unternehmensintern). Wenn Sie AD CS verwenden, laden Sie das ausgestellte Zertifikat vom Webportal der Zertifizierungsstelle herunter.

5 Windows VPS

Alternative zum Testen: selbstsigniertes Zertifikat über PowerShell New-SelfSignedCertificate. Geeignet für Testumgebungen, jedoch nicht für Produktionsstandorte.

Importieren eines Zertifikats in IIS (CER/PFX) und Formatnuancen

Kehren Sie zu Serverzertifikate zurück und klicken Sie auf Zertifikatsanforderung abschließen… – geben Sie das ausgestellte CER an.

6 Windows VPS

Wenn Sie CRT + KEY haben, konvertieren Sie diese zunächst in PFX (ein kombinierter Container mit einem privaten Schlüssel). Am einfachsten geht dies mit openssl:

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

Oder konvertieren Sie CRT → CER (Base-64 X.509) vorübergehend direkt in Windows über „Exportieren“:

8 Windows VPS

Wenn Sie PFX importieren, tun Sie dies am besten über das Snap-In Zertifikate (Lokaler Computer) → Persönlich. Microsoft bietet in seiner offiziellen Dokumentation detaillierte Anweisungen zum Importieren und Zuweisen eines Standortzertifikats.

Nach dem Abschluss der Zertifikatsanforderung wird das neue Zertifikat in der Liste angezeigt:

9 Windows VPS

HTTPS an die Website binden (Bindungen)

Gehen Sie zu Websites, wählen Sie die Website aus → Bindungen bearbeiten…

10 Windows VPS

Fügen Sie eine Bindung hinzu:

  • Typ: https
  • IP-Adresse: Alle nicht zugewiesenen (oder bestimmte)
  • Port: 443
  • Hostname: Der FQDN Ihrer Website
  • SSL-Zertifikat: Wählen Sie das importierte Zertifikat aus

Aktivieren Sie für mehrere HTTPS-Websites auf einer einzigen IP-Adresse SNI (Require Server Name Indication).

11 Windows VPS

Starten Sie die Website (oder den gesamten IIS) neu.

12 Windows VPS

Überprüfen Sie in Ihrem Browser: das Schloss und das gültige Zertifikat für die Domain.

13 Windows VPS

Es ist sinnvoll, die HTTP → HTTPS-Umleitung (URL-Umschreibung) sofort zu aktivieren – dazu gibt es eine separate Analyse in winitpro.

Öffnen Sie die Ports und testen Sie von außen

Vergessen Sie nicht, 80/443 in der internen Windows-Firewall und der externen Firewall/ACL beim Windows VPS-Anbieter zu öffnen:

  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  

Überprüfung vom Client-Rechner aus:

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

TcpTestSucceeded: True – Bindung und Verfügbarkeit bestätigt.

Häufige Fehler und schnelle Lösungen

  • Zertifikat wird nicht in der Dropdown-Liste „Bindungen” angezeigt – wurde in „Aktueller Benutzer” statt in „Lokaler Computer → Persönlich” importiert oder ohne privaten Schlüssel. Importieren Sie PFX in „Lokaler Computer”.
  • NET::ERR_CERT_COMMON_NAME_INVALID – CN/SAN stimmt nicht mit der Domäne im Hostnamen überein; erneut mit dem richtigen FQDN ausstellen.
  • Nur HTTP wird geöffnet – keine HTTPS-Bindung oder 443 ist auf der externen Firewall geschlossen.
  • Fehler beim Importieren von CRT – in CER oder PFX konvertieren (siehe oben).
  • Mehrere Websites auf einer IP – Aktivieren Sie SNI in der Bindung und verwenden Sie unterschiedliche Hostnamen.

Spickzettel: IIS + Website + HTTPS in wenigen Minuten

  # 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