Hosting a Local Application Behind HTTPS Using IIS Reverse Proxy
Hosting a Local Application Behind HTTPS Using IIS Reverse Proxy
This article explains how to configure Internet Information Services (IIS) on Windows Server to act as a reverse proxy, allowing a public HTTPS domain to display content from a locally running application.
In this setup:
Public URL: https://example.com
Local application: http://192.168.31.172:3000
When users visit https://example.com, IIS will securely forward the request to the local application running on port 3000 and return the response transparently.
Why Use a Reverse Proxy in IIS?
A reverse proxy allows IIS to:
Serve a local or internal application over HTTPS
Terminate SSL (HTTPS) at IIS while the backend remains HTTP
Hide internal IP addresses and ports from users
Centralize security, logging, and access control
IIS does not provide reverse proxy functionality by default, so we use Application Request Routing (ARR) along with URL Rewrite.
Prerequisites
Before you begin, ensure:
IIS is installed on Windows Server
You have administrator access
The IIS server can reach
http://192.168.31.172:3000A valid SSL certificate is available for
example.com
Step 1 — Install Application Request Routing (ARR)
IIS requires ARR and URL Rewrite to function as a reverse proxy.
Option A: Install via Web Platform Installer
Install the following components:
Application Request Routing 3.0
URL Rewrite Module 2.1
Restart IIS Manager after installation.
Option B: Manual Installation
Download and install manually:
URL Rewrite Module: https://www.iis.net/downloads/microsoft/url-rewrite
Application Request Routing: https://www.iis.net/downloads/microsoft/application-request-routing
After installation, restart IIS Manager.
Step 2 — Enable Proxy Support in ARR
By default, ARR proxy functionality is disabled.
Open IIS Manager
Click the server name in the left panel
Open Application Request Routing Cache
In the right panel, click Server Proxy Settings
Check Enable Proxy
Click Apply
This enables IIS to forward incoming requests to backend servers.
Step 3 — Create the Reverse Proxy Rule
Now configure the website to forward traffic to the local application.
In IIS Manager, select your website (e.g.,
example.com)Open URL Rewrite
Click Add Rule(s)…
Choose Reverse Proxy
Enter the backend URL:
Enable the option:
✔ Reverse rewrite host in response headers
Click Apply
IIS will automatically generate the necessary inbound and outbound rewrite rules.
Step 4 — Configure HTTPS Binding
Ensure the website is properly bound to HTTPS.
Select the website in IIS
Click Bindings…
Add or edit an HTTPS binding with:
Type: https
Hostname: example.com
SSL Certificate: Select your valid certificate
Click OK
IIS will now handle HTTPS traffic and forward it to the backend application over HTTP.
Final Result
Once configured, users visiting:
Will see the content served from:
The reverse proxy is completely transparent to the end user.
Common Troubleshooting Tips
502 Bad Gateway: Ensure the backend application is running and reachable
500.52 Error: Proxy is not enabled in ARR settings
Connection refused: Confirm port
3000is open and listening on0.0.0.0Mixed content warnings: Ensure the application generates relative URLs or respects forwarded headers
Conclusion
Using IIS with Application Request Routing provides a powerful and secure way to expose internal or local applications over HTTPS. This approach is ideal for APIs, dashboards, admin panels, and development tools that should remain hidden behind a controlled entry point.
With this configuration, IIS acts as a secure gateway while your application remains simple and isolated.
You have successfully configured an IIS reverse proxy using ARR.
Last updated
Was this helpful?