HOOPS Communicator server with HTTPS (SSL)

Introduction

This article is step-by-step guide to create HOOPS Communicator SC server with HTTPS (SSL) server.
If you haven’t created HTTPS server, please refer this article: How to setup HTTPS server with AWS

Instruction

HOOPS Communicator server installation

Place the folders and files required for the HC server from the SDK.
Here is an illustration of how to configure the server:

+ var
  + www
    + html
      + src
    + server
    + 3rd_party
    + sc_models
  1. Transfer the tar.gz file of HOOPS Communicator for Linux to the /tmp folder of the virtual server via SCP

  2. Extract the tar.gz file

cd /tmp
tar -zxvf HOOPS_Communicator_202x_SPx_Linux.tar.gz
  1. Allocate the necessary folders in a root folder of nginx
cd HOOPS_Communicator_202x_SPx/
sudo cp -r 3rd_party/ server/ /var/www/
sudo cp -r quick_start/converted_models/standard/sc_models/ /var/www/
sudo cp -r web_viewer/src /var/www/html/

HOOPS Communicator server setup

  1. Open Config.js for HOOPS Communicator Stream Cache Server
sudo vi /var/www/server/node/Config.js
  1. Set SSL settings
...
    publicHostname: "YOUR_DOMAIN_NAME",
...
    sslCertificateFile: "/etc/letsencrypt/live/YOUR_DOMAIN_NAME/fullchain.pem",
...
    sslPrivateKeyFile: "/etc/letsencrypt/live/YOUR_DOMAIN_NAME/privkey.pem",
...
    sslEnableFileServer: false,
...
    sslEnableSpawnServer: true,
...
    sslEnableScServer: false,

Note that set false to sslEnableScServer if you use Proxy Connection of SC server.

  1. Set model search directory
    modelDirs: [
        "./sc_models",
    ],
  1. Save and quit::wq

Start the HOOPS Communicator server

  1. Edit the inbound rules of the virtual server to open port 11182

  2. Start the HOOPS Communicator server

sudo sh /var/www/server/node/start_server.sh

  1. Open https://YOUR_DOMAIN_NAME/src/hoops_web_viewer_sample.html?wsPort=11182&instance=microengine
    Error message will appear
    SSL_17

Error fixing

  1. Stop the HOOPS Communicator Server by pressing the Enter key on the SSH
  2. Show log file list of the server
ls -al ~/ts3d_communicator_logs/ 
  1. Verify the latest log file
cat ~/ts3d_communicator_logs/comm_scserver_csr_2023_02_...

  1. Since the Cart expects to find your certificate in /etc/pki/tls/certs/ca-bundle.crt, it is stored in /etc/ssl/certs/ca-certificates.crt
    You can fix this error by adding a symlink to the expected path
mkdir -p /etc/pki/tls/certs
ln -s /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt
  1. Start the HOOPS Communicator server and reload the page
    3D model appears using SSL

I use the HC 2023 for testing https server. Here is the error, how to fixed it. Thanks a lot!

“2023-8-18 11:48:33 AM:error: file-server: proxy-error: Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate’s altnames: IP: 127.0.0.1 is not in the cert’s list:”

I have installed the CA use the “certmgr.msc”.

server_config_127_0_0_1.js

publicHostname: "127.0.0.1",

sslCertificateFile: "./quick_start/cert.crt",

sslPrivateKeyFile: "./quick_start/cert.key",

// Determines if SSL is enabled for the file-server.
sslEnableFileServer: true,

// Determines if SSL is enabled for the spawn-server.
sslEnableSpawnServer: true,

// Determines if SSL is enabled for the spawned stream-cache servers.
sslEnableScServer: true,

start_server.bat

:: Script is relative to this directory 
@cd "%~dp0"

@set node_install_dir=%~dp0\..\3rd_party\node
@set NODE_EXTRA_CA_CERTS=%~dp0\cert.crt

:: Must start the server from the node dir 
@cd ../server/node

:: Perform the node command directly here to pass in the quick-start config and not the server/node config 
@call "%node_install_dir%\node.exe" --expose-gc ./lib/Startup.js --config-file ../../quick_start/server_config_127_0_0_1.js
1 Like

Hi,

This article is written using a public DNS.
As you can see in this article: How to setup HTTPS server with AWS
certificate file is needed to be created using a valid DNS.

In fact, you error message says:
“Hostname/IP does not match certificate’s altnames: IP: 127.0.0.1 is not in the cert’s list:”,
your certificate file seems to be not compatible with localhost (127.0.0.1).

Could you try to configure a HTTPS environment using a public DNS?

This article seems to be for localhost environment, How-To : Using HOOPS Communicator with SSL

Best regards,
Toshi

1 Like