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
Configure IIS Cache Settings
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-Control
Value:
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:
http://www.iis.net/downloads/microsoft/application-request-routing
http://www.iis.net/downloads/microsoft/url-rewrite
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_ENCODING
HTTP_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_ENCODING
Rewrite URL:
http://<FQDN>:8888/voyager{R:1}
HQ Rule
Pattern:
^hq(.*)
Server Variable:
HTTP_ACCEPT_ENCODING
Rewrite 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>