Time

HTTPS Time Server Configuration

Prerequisites

All prerequisites must be passed before the configuration can commence.

1. PowerShell version must be 3 or newer.

To determine PowerShell version, run the following command in PowerShell (as Administrator) prompt:

$PSVersionTable.PSVersion.Major

The output should be 3 or higher.

2. A valid certificate, with private key, must be installed on Personal Certificate Store for Local Computer account.

To see list of installed certificates run in PowerShell, as Administrator:

Get-ChildItem Cert:\LocalMachine\My

The certificate intended to be used with the MobileWeb connector must be shown in the output from the command.

To verify that you also have the private key for the certificate, an export with certutil -exportPFX should output message “Encryption test passed”.

Run the following in PowerShell (as Administrator):

certutil -exportPFX <thumbprint> foo.bar

Use the relevant thumbprint from the Get-ChildItem command before.

There should now come a prompt to provide password. Press ctrl+c to abort.

In the output for the certutil command it should say “Encryption test passed”, before the password prompt. If that’s the case, then the certificate is installed correctly, with private key.

If, in the output of the certutil command it says, “Cannot find the certificate and private key for decryption.”, then you don’t have the private key and cannot proceed with configuring MobileWeb connector for secure communication (https) until this is fixed.

Gather Information

You can see every port used in the TimeServer.exe.config file in the TimeServer folder. Typically located in C:\Program Files (x86)\formula.fo\Totalview3\TimeServer

There are three distinct services.

  1. The Time Server usually running on port 8000
  2. The Payment Service usually running on port 8002
  3. The Account Service usually running on port 8003

They can be located by looking for the <baseAddresses> <add baseAddress=”….” for each service. You can also use Powershell to lookup these values. See below:

1. Get Time port numbers

Start PowerShell prompt as Administrator in Time Server installation folder under Totalview installation. It is often C:\Program Files (x86)\formula.fo\Totalview3\TimeServer.

Run the following command:

Get-Content TimeServer.exe.config | Select-String -Pattern “^(\s)*(<add baseAddress)”

This should output the TimeServer endpoints and the port numbers that it is running on. You should note the endpoint for the https address, in this case 9000.

TimeServerPowerShellGetBaseAddress

The first two ports are the TimeServer WCF ports (one for https and one for net.tcp) 9000 and 9001 in this example

The 3rd is the Payment WCF service port number 9002 in this example

The 4th is the Account WCF service port 9003 in this example

2. Assign the port numbers to PowerShell variable

Store the port number from previous commands in a PowerShell variable by running the following command (RUN AS ADMINISTRATOR): (Skip payment and account if they are not used)

$timeserverport = <time server port number>
$paymentport = <payment port number>
$account = <account port number>

Replace <port number> with the port number outputted in PowerShell command in previous section.

Example:

$timeserverport = 8000
$paymentport = 8002
$accountport = 8003

Verify that the port number was saved by running the following command:

echo $timeserverport
echo $paymentport
echo $accountport

It should output the port number to the console.

Use this same PowerShell session for the remainder of this guide.

3. Get certificate thumbprint

Take the thumbprint of the certificate that passed in step 3 of the prerequisite check. Assign it to a PowerShell variable the same way as you did with the timeserverport variable:

$thumbprint = ‘<thumbprint>’

Example:

$thumbprint = ‘6042aef35be8da8a454d0288cf57f6e8’

Verify that the thumbprint was saved by running the following command:

echo $thumbprint

It should echo the thumbprint value in the console.

TimeServer PowerShell Certificate Thumbprint

Use this same PowerShell session for the remainder of this guide.

Making the switch to HTTPS

TimeServer Configuration

Stop the TimeServer service. Open services.msc find the service, usually Totalview_TimeServer and stop it.

In the TotalviewInstallFolder/TimeServer, open TimeServer.exe.config in a text editor and follow the instructions described there.

In the TotalviewInstallFolder/TimeClient folder, open TimeClient.exe.config in a text editor and follow the instructions described there.
NB! Change the tv_version at the top of the files, to some other value, so it will trigger an auto update for clients.

Windows OS Configuration

Run the following commands to assign the certificate to the port where the TimeServer is running, and potentially Payment and Account services:

netsh http add sslcert ipport=”0.0.0.0:$timeserverport” certhash=”$thumbprint” appid=”{bfc1c581-4403-4fcf-b527-5312d1511822}”
netsh http add sslcert ipport=”0.0.0.0:$paymentport” certhash=”$thumbprint” appid=”{bfc1c581-4403-4fcf-b527-5312d1511822}”
netsh http add sslcert ipport=”0.0.0.0:$accountport” certhash=”$thumbprint” appid=”{bfc1c581-4403-4fcf-b527-5312d1511822}”

TimeServer PowerShell Certificate Bound

If you get error “Cannot create a file when that file already exists.”, then you need to remove existing sslcert configuration for same port. Running the following command, and rerunning previous netsh http add sslcert, should fix the issue:

netsh http del sslcert ipport=”0.0.0.0:$timeserverport”
netsh http del sslcert ipport=”0.0.0.0:$paymentport”
netsh http del sslcert ipport=”0.0.0.0:$account”

Now start the TimeServer service again.

Verification

Open your Time Client and login.

In the bottom left corner it should say [SECURE]

TimeClient Secure Connection

HTTPS configuration is now complete. Congratulations!

Scaling and the Totalview Time Client

While it is generally recommended to use the Totalview Time Client at 100% for optimum display results, the following scaling factors are also supported: 125%, 150%. Other scaling factors are not supported, as the visual results can be unpredictable and impact the usability of the application negatively.

Below we provide examples of different scaling factors, as well as exemplify problematic issues when choosing them.

Please note that all scenarios were tested with a monitor resolution of 1920×1080. For other resolutions, the scaling recommendations below may vary.

 

100% Scaling (Recommended)

At 100%, the Time Client will be displayed optimally on the screen, as all elements will be shown correctly.

 

120% Scaling (Not supported)

Scaling the display to 120% is strongly discouraged as elements and text will not always be displayed properly. Examples for this can be seen below: The date filter is partly hidden, the State content area is smaller and difficult to resize and the bottom areas appear incorrectly sized.

 

Additionally, the dialog window for “Moving Times Between Accounts” experiences problems with displaying input fields and text properly:

 

 

125% Scaling (Supported)

At 125%, the Time Client behaves normally, while featuring issues with fonts being displayed blurry.

 

150% Scaling (Supported)

Apart from blurry font rendering, scaling the display to 150% will work properly. Any issues with overlapping elements can easily be resolved by resizing the content areas, as can be seen in the example below where the Show button is partly hidden in the date filter.

 

175% Scaling (Not supported)

Scaling the display to 175% is problematic, as the avaialble space for all elements becomes too small. The screenshot below shows that resizing the content areas to the right would not remedy the overlapping date filter problem in the top. Additionally, the My States area in the bottom is cutting off text for the last item in the list. While this could be solved by resizing the content area upwards, it is not a feasible solution for longer lists.

Display Scaling

Totalview is being developed to run on a range of different environments, with different displays and resolutions. Naturally, such flexibility comes with its own challenges. This section is intended to address issues that may occur when using Totalview applications at varying scaling factors. The factors exemplified here will be 100, 120, 125, 150 and 175 percent, with a base resolution of 1920×1080, for the following applications: