IIS-Umleitung - Hostname zu Alias ​​mit ausschließlich HTTP-Umleitung

IIS-Umleitung - Hostname zu Alias ​​mit ausschließlich HTTP-Umleitung

Ich habe einen Windows 2016-Server (FQDN: server1.domain) in einer Active Directory-Domäne. Ich hoste Intranet-Web-Apps in IIS.

Ich habe vor Kurzem einen Alias ​​(FQDN: CoolName.domain) für diesen Server im DNS erstellen lassen. TLS-Zertifikate wurden von der internen Zertifizierungsstelle generiert. Innerhalb von IIS habe ich Port 443 an Hostnamen CoolName.domainund CoolNamemit dem Zertifikat gebunden.

Ich möchte meine vorhandenen Apps von der alten Domäne (z. B. server1.domain/app1) auf den Alias ​​(z. B. CoolName.domain/app1) umleiten können, wenn Benutzer die alte Domäne eingeben. Außerdem soll HTTPS erzwungen werden, wenn HTTP verwendet wird.

Mein Versuch bestand darin, das HTTP-Umleitungsmodul auf Serverebene im IIS-Manager zu verwenden und Folgendes auszufüllen:

  1. Leiten Sie Anfragen an dieses Ziel um:https://CoolName.domain

  2. Umleitungsverhalten: AktiviertRedirect all requests to exact destination (instead of relative to destination)

  3. Dann auf „Übernehmen“ gedrückt.

Eine Bildreferenz der Optionen, die ich gewählt habe:https://i.stack.imgur.com/vgPld.jpg

Beim Aufrufen der folgenden Links ist die Weiterleitung fehlgeschlagen:

http://server1

http://CoolName

http://CoolName.domain

http://server1.domainEs endete nur mit einer Weiterleitung zu https://CoolName.domain.

Sobald ich versucht habe, eine URL umzuleiten, die über die Domain hinausgeht, wie z. B. http://CoolName.domain/app1, wird sie nicht umgeleitet. Ich habe versucht, das Kontrollkästchen für zu deaktivierenLeiten Sie alle Anfragen an das genaue Ziel um (anstatt relativ zum Ziel).in 2.

Kann meine Anforderung nur mit einer HTTP-Umleitung erfüllt werden?

Antwort1

Ich habe in meinem ersten Beitrag vergessen zu erwähnen, dass ich Fehlermeldungen bezüglich „Zu viele HTTP-Umleitungen“ erhielt. Es stellte sich heraus, dass das Aktivieren der HTTP-Umleitung UND die Umleitung auf die GLEICHE Website (sogar mit einem anderen Alias) zu endlosen Umleitungen führt. Anscheinend ist IIS nicht intelligent genug, um zu erkennen, ob auf dieselbe Domain umgeleitet wurde oder nicht. Das muss man sich mal vorstellen. Ich habe mein Problem letztendlich gelöst, indem ich die Anweisungen hier befolgt habe:https://stackoverflow.com/a/49460688

Zusammenfassend: Sie erstellen eine Dummy-Website und binden den gesamten HTTP-Verkehr über Port 80 auf dieser Website an IIS. Anschließend können Sie auf HTTPS umleiten, das auf Ihrer ursprünglichen IIS-Website konfiguriert ist. Gehen Sie dazu wie folgt vor:

  1. Die Standardwebsite - Binden Sie den gesamten HTTP-Verkehr an einen freien Port, der nicht 80 ist (oder Sie können die HTTP-Bindung entfernen). Lassen Sie die HTTPS-Bindungen unverändert.

Ändern Sie für die Standardwebsite die HTTP-Bindung auf einen anderen Port oder entfernen Sie sie.

  1. Erstellen Sie eine neue Website in IIS (RedirectSite): Binden Sie den gesamten HTTP-Verkehr an Port 80.

Konfigurieren Sie Bindungen an Port 80 für die Dummy-Site RedirectSite.

  1. Klicken Sie in den DummySite-Einstellungen auf „HTTP-Umleitung“. Aktivieren Sie das Kontrollkästchen „Anfragen an dieses Ziel umleiten“ und geben Sie im Feld „Ziel-URL“ die vollständige Domäne mit HTTPS ein. Beispiel:https://CoolName.domain. HTTP-Code 301. Es müssen keine weiteren Kästchen angekreuzt werden, da ich alles relativ zur Domäne umleiten wollte. Stellen Sie sicher, dass Sie auf „Übernehmen“ klicken, um Ihre Einstellungen zu speichern.

Schritt 3: Konfigurieren der Weiterleitung

  1. Warten Sie nach dem Anwenden der Einstellungen einige Minuten, bis die Änderungen wirksam werden, wenn Sie die Windows-Authentifizierung verwenden. Ich hatte Probleme mit Authentifizierungsfehlern (HTTP 40x.x), als ich die Weiterleitungen ausprobierte. Leeren Sie den Cache Ihres Client-Browsers, bevor Sie die Links testen.

  2. Test. Ich habe letztendlich die Links aus meinem ursprünglichen Beitrag verwendet:

http://server1

http://server1.domain

http://CoolerName

http://CoolName.domain

Diese Links sollten letztendlich zuhttps://CoolName.Domäne.

Als Randbemerkung für beide Websites, falls zutreffend:

  • Stellen Sie sicher, dass IIS_IUSRS und IUSR über Lese-/Ausführungsberechtigungen für die Website-Verzeichnisse verfügen. Dasselbe gilt für [Server_name]\Benutzer

  • Überprüfen Sie noch einmal, ob die Windows-Authentifizierung richtig konfiguriert ist.

verwandte Informationen