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.

Enable WebSocket Protocol for IIS

  1. On the taskbar, click Server Manager.

  2. In Server Manager, click the Manage menu, and then click Add Roles and Features.

  3. In the Add Roles and Features wizard, click Next. Select the installation type and click Next. Select the destination server and click Next.

  4. On the Server Roles page, expand Web Server (IIS), expand Web Server, expand Application Development, and then select WebSocket Protocol. Click Next.
     

  5. On the Select Features page, click Next.

  6. On the Confirm installation selections page, click Install.

  7. On the Results page, click Close.

 

Two IIS modules are required for this configuration

  • URL Rewrite Module

  • Application Request Routing (ARR)

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

 

 

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, 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

  • Configure the following settings:

 

Pattern:

^voyager(.*)

Server Variable:

HTTP_ACCEPT_ENCODING

Rewrite URL:

http://<FQDN>:8888/voyager{R:1}

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>