Hoe HTTP naar HTTPS omleiden op IIS (Windows Server)

Nadat je een SSL-certificaat op je IIS-website hebt geïnstalleerd, wil je natuurlijk dat al je bezoekers direct op de beveiligde HTTPS-versie terechtkomen. Een redirect-regel instellen? Jazeker. Maar geloof me, het is niet altijd even makkelijk, vooral niet als IIS problemen geeft met fouten zoals 403.4 Forbidden of als de redirect helemaal niet werkt. Het probleem is dat IIS soms conflicteert met SSL-instellingen, of dat je vergeet de web.config correct aan te passen. Daarom volgt hier een overzicht dat hopelijk een hoop kopzorgen bespaart.

Hoe zorg je ervoor dat IIS alle HTTP-verzoeken doorstuurt naar HTTPS?

Methode 1: Een omleidingsregel instellen met URL Rewrite Manager

Dit is de meest gebruikelijke methode en werkt, mits correct uitgevoerd, over het algemeen prima. Het voordeel is dat het alle inkomende verzoeken op poort 80 (HTTP) onderschept en doorstuurt naar poort 443 (HTTPS).Dit is vooral relevant wanneer bezoekers uw domein intypen zonder “https://” te specificeren. Het verwachte resultaat? Iedereen wordt automatisch doorgestuurd naar de beveiligde versie. Let wel op: als uw site SSL vereist in de instellingen, kan IIS problemen ondervinden met de doorverwijzing.

Zorg er eerst voor dat je de URL Rewrite Module 2.1 voor IIS hebt geïnstalleerd, want die module beheert deze regels. Je kunt hem hier downloaden. De installatie kan soms aanvoelen als een gevecht met Windows – natuurlijk maakt het de zaken ingewikkeld – maar eenmaal geïnstalleerd, kun je aan de slag met het schrijven van aangepaste regels.

Configureer uw website voor HTTPS en stel de omleiding in.

  • Open de Internet Information Services (IIS) Manager. U kunt dit doen door het volgende commando uit te voeren inetmgr:.
  • Klik op uw website in het gedeelte ‘ Websites’.
  • Ga naar het tabblad SSL-instellingen voor uw site. Zorg ervoor dat ‘SSL vereisen’ NIET is aangevinkt. Als dit wel het geval is, kan de omleiding conflicteren en leiden tot fouten zoals 403.4 Forbidden. U wilt SSL afdwingen, maar niet in dit stadium, anders komt u in een oneindige lus terecht.
  • Ga naar het gedeelte ‘URL Rewrite’. Als je het niet ziet, controleer dan of de module correct is geïnstalleerd.

Een nieuwe omleidingsregel maken

  • Klik op Regels toevoegen en selecteer vervolgens Lege regel.
  • Geef het een naam zoals “Doorverwijzen naar HTTPS”.
<rule name="Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent (301)" /> </rule>

In de instellingen van de regel: – Kies bij ‘Gevraagde URL’Matches the Pattern de optie.- Kies bij ‘Gebruik’Wildcards de optie.- Patroon:*

In het gedeelte Voorwaarden :

  • Stel de voorwaarde-invoer in op {HTTPS}.
  • Controleer of de invoerreeks overeenkomt met het patroon.
  • Patroon: OFF— dit betekent dat HTTPS niet actief is.
  • Negeer hoofdlettergevoeligheid: enabled.

Vervolgens geeft u in het gedeelte ‘Actie’ het volgende op:

  • Actietype:Redirect
  • Omleidings-URL:https://{HTTP_HOST}{REQUEST_URI}
  • Omleidingstype:Permanent (301)

Nadat je deze regel hebt opgeslagen, voer je deze uit iisresetin een opdrachtprompt (met beheerdersrechten).Hiermee wordt de cache gewist en worden de wijzigingen toegepast. Test vervolgens door je site te bezoeken zonder https en kijk of je wordt doorgestuurd naar HTTPS.

Even een kleine opmerking: zorg ervoor dat je web.config geen tegenstrijdige regels bevat. Soms is direct bewerken sneller en voorspelbaarder. Hier is een fragment dat je kunt kopiëren en plakken in je web.config :

<configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect_HTTP_to_HTTPS" patternSyntax="Wildcard" stopProcessing="true"> <match url="*" /> <conditions> <add input="{HTTPS}" pattern="OFF" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

En ja, dit soort configuratie zou moeten werken op Windows Server 2022, 2019, 2016 en Windows 10/11 met IIS. Er zijn geen garanties voor alle uitzonderlijke gevallen, maar in de meeste omgevingen is het doorgaans betrouwbaar genoeg.

Soms snap ik echt niet waarom het allemaal zo ingewikkeld wordt — IIS kan nogal kieskeurig zijn, en SSL-instellingen kunnen conflicteren. Maar deze aanpak is behoorlijk robuust, en op één configuratie heeft het perfect gewerkt. Op een andere… niet zo best, dus let op conflicterende regels of SSL-handhavingsinstellingen. Jeetje, IIS.

Samenvatting

  • Installeer de URL-herschrijfmodule
  • Schakel SSL-instellingen uit of pas ze indien nodig aan.
  • Maak een omleidingsregel aan in IIS of web.config.
  • Uitvoeren iisreseten testen

Samenvatting

Uit ervaring blijkt dat het instellen van de redirect in IIS betrouwbaarder is dan het aanpassen van autoconf-scripts of het gebruik van tools van derden. Je moet alleen de regels goed instellen en ervoor zorgen dat je SSL-instellingen elkaar niet tegenwerken. Hopelijk helpt dit en blijven je bezoekers veilig, zonder dat ze constant met URL’s hoeven te rommelen.