Web Server

URL Rewrite: How to perform redirection from HTTP to HTTPS

IIS URL Rewrite enables Web administrators to create powerful rules to implement URLs that are easier for users to remember and easier for search engines to find. By using rule templates, rewrite maps, .NET providers, and other functionality integrated into IIS Manager, Web administrators can easily set up rules to define URL rewriting behavior based on HTTP headers, HTTP response or request headers, IIS server variables, and even complex programmatic rules. In addition, Web administrators can perform redirects, send custom responses, or stop HTTP requests based on the logic expressed in the rewrite rules. Please see the following interesting articles on how to import a certificate into the Trusted Root and Personal file certificate store, how to request a certificate signing request in Windows using Microsoft Management Console, and how to export a certificate in PFX format in Windows. You may also be interested in this guide: How to install and configure Active Directory Certificate Services.

Without having a valid certificate from a trusted CA, when a user enters the servername (short name) such as "https://server1" instead of "https://server1.techdirectarch.com", the certificate will come as invalid. To resolve this issue, we will use the IIS URL Rewrite. URL Rewrite can also be used to direct users to the HTTPS site, instead of using HTTP.

Firstly,  I had to change the default port from 80 to 81. This is needed because HTTP listens on port 80 (You may ignore this step if you want. Also, I created a record in the host file to redirect traffic from the localhost/loopback address to 127.0.0.1
– This can be done in DNS too but I decided to use the host file. This can be found in this path as shown below

C:WindowsSystem32driversetc 

So when you enter the IP or hostname, you are automatically redirected to the desired URL. Ensure you open the host file via elevated rights (This is better done by opening or running notepad as an Administrator and opening the path mentioned above. This makes saving any change possible and effortless.

127.0.0.1      mk.chris.com
1x.xx.xx.2     mk.chris.com

Note: To make this possible ensure the SSL setting is unchecked not to require certificate otherwise you will never be able to access it via HTTP.

  • Click on the website and
  • Navigate to the SSL Settings
  • Double click to open and set as shown below

Now create a binding to allow HTTP connection for the website as shown below.

New to ensure the URL redirect works by redirecting to HTTPS, kindly follow these steps as shown below

  • Under sites, select the desired website
  • Click on URL rewrite (if you do not have this already installed, click on the web Platform Installer, run it and select URL rewrite to install).
  • Click on Add Rule (Under Action)
  • The Add Rule URL Opens up
  • Enter any desired name to identify your rule
  • Under the Match URl, enter matches the pattern
  • Under “Using”, select Regular expression
  • Under Pattern, select (.*)
  • Select ignore cases, note: this is selected by default in most cases.
  • Navigate to condition and click on “Add” to create a rule
  • Set as shown below and click on Okay
  • Under Actions “Action type”, select Redirect
    Enter the Redirect URL and the
  • Redirect type as “Found (302)

Finally, click on apply on the top right side of the screen.

I hope you found this blog post helpful. If you have any questions, please let me know in the comment session.

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x