Configuring Vose to run behind IIS (SSL)
The steps involve configuration of rewrite rules in IIS and changing the Voyager URL and context path parameter in Voyager.
For proper UI functionality when using IIS, Websocket Protocol for IIS and a IIS Cache-Control settings are required
Enabling and Installing IIS on Windows
To use IIS Manager on Windows, first enable the Internet Information Services (IIS) feature through "Turn Windows features on or off" in the Control Panel. Then, you can open IIS Manager by typing inetmgr in the Run dialog (Win+R) or by searching for "IIS Manager" in the Start menu.
Enabling IIS on Windows:
Open the Start Menu and search for Control Panel.
Click on Programs or Programs and Features.
Select Turn Windows features on or off.
In the Windows Features window, find and check the box next to Internet Information Services.
Expand the node to ensure necessary components like Web Management Tools and World Wide Web Services are also selected.
Click OK to start the installation process.
Configure IIS Cache Settings
Open your Windows finder and type “IIS Manager”, then select the Internet Information Services (IIS) Manager application:
Select HTTP Response Headers option:
Add a new configuration by clicking the “Add…” button on the right hand side of the page:
Add the following settings:
Name:
Cache-ControlValue:
no-cache
Enable WebSocket Protocol for IIS
On the taskbar, click Server Manager
In Server Manager, click the Manage menu, and then click Add Roles and Features
In the Add Roles and Features wizard, click Next. Select the installation type and click Next. Select the destination server and click Next.
On the Server Roles page, expand Web Server (IIS), expand Web Server, expand Application Development, and then select WebSocket Protocol. Click Next.
On the Select Features page, click Next
On the Confirm installation selections page, click Install
On the Results page, click Close
Two IIS modules are required for this configuration
URL Rewrite Module
Application Request Routing (ARR)
Install ARR and URL Rewrite modules in IIS
To install ARR and URL Rewrite modules in IIS please navigate to the following links:
Application Request Routing : The Official Microsoft IIS Site
URL Rewrite : The Official Microsoft IIS Site
ARR Configuration
The next step is a configuration of the reverse proxy functionality using ARR module.
From the IIS Manager, select a server node and then click the double click the ARR feature.
Next, select “Server Proxy Settings…” from the menu on the right.
Next, check the box for Enable proxy
Enable Allowed Server Variables
Select the Default website (or relevant site for your organization)
Next, double click the URL Rewrite Module
From the menu on the right, select “View Server Variables…”
Add the following server variables to the allowed server variables list using the “Add…” button on the right
HTTP_ACCEPT_ENCODINGHTTP_SEC_WEBSOCKET_EXTENSIONS
Creating Routing Rules with URL Rewrite Module
From the IIS Manager, select a Default Web Site and then click on the URL Rewrite feature
In the Actions pane on the right hand side click Add Rules
In the Add Rules dialog open the new Blank Rule
Add the following three rules
HTTPS Rule
NOTE: This rule must be first.
Pattern:
(.*)Conditions:
{HTTPS}“Matches the Pattern”
^OFF$
Redirect URL:
https://{HTTP_HOST}{REQUEST_URI}
Voyager Rule
Pattern:
^voyager(.*)Server Variable:
HTTP_ACCEPT_ENCODINGRewrite URL:
http://<FQDN>:8888/voyager{R:1}
HQ Rule
Pattern:
^hq(.*)Server Variable:
HTTP_ACCEPT_ENCODINGRewrite URL:
http://<FQDN>:8888/hq{R:1}
You should now have three URL Rewrite Rules
Server Settings
Server site.dex:
BaseURL=https\://windows10/voyager/
Voyager.vmoptions
-Dport=8888
-Dcontext.path=voyager
-Dinternal.url=https://windows10/voyager/
For Reference:
C:\inetpub\wwwroot\web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="HTTPS Redirect" stopProcessing="true">
<match url="(.)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
<rule name="voyager localhost">
<match url="^voyager(.)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="True" />
</serverVariables>
<action type="Rewrite" url="http://WINDOWS10:8888/voyager{R:1}" />
</rule>
<rule name="hq localhost">
<match url="^hq(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<serverVariables>
<set name="HTTP_ACCEPT_ENCODING" value="True" />
</serverVariables>
<action type="Rewrite" url="http://windows10:8000/hq{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>