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.
Configure HTTP to HTTPS Redirection
Firstly, I had to change the default port from 80 to 81. This is 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 – You can do this in DNS too but I decided to use the host file. You can find it in the path as shown below
Upon entering the IP or hostname, you will be automatically redirected to the desired URL. Additionally, to ensure you can make changes effectively, it’s advisable to open the host file with elevated rights. You can achieve this by running Notepad as an Administrator and then opening the mentioned path. This approach simplifies the process of saving any changes.
127.0.0.1 mk.chris.com 1x.xx.xx.2 mk.chris.com
Note: To make this possible ensure you uncheck the SSL setting to not 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
After that, create a binding to allow HTTP connection for the website as shown below.
Also, 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 on How to perform redirection from HTTP to HTTPS helpful. If you have any questions, please let me know in the comment session.