|
If using a custom name for the Connection Server, make sure that the name is unique. The ThingWorx Platform will not create a Thing for the Connection Server or allow it to connect if the name is a duplicate.
|
|
The environment variable, CONNECTION_SERVER_OPTS, must also be set to point to the configuration files for the Connection Server and for logging (logback.xml). Refer to Setting the Environment Variables for the Connection Server for details.
|
|
The Java keystore (JKS) format is considered insecure compared to a PKCS #12 keystore. It is strongly recommended that you convert the JKS keystore into a PKCS #12 keystore.
|
|
The value of the tls-enabled property needs to align with the service-name used to look up ThingWorx Platform endpoints. If you enable TLS here, the service-name property must match the configured HTTPS service name of the ThingWorx Platform.
|
|
If you require HTTP Pass-Through and tunneling, configure options for HTTP Pass-Through and Tunneling in the cxserver.protocol.http-client group of properties in the configuration file. To do so, refer to . Then, return here to set up the trust store for the http-client, as shown for the cx-server.protocol.http-client.ssl.trust-store.file and cx-server.protocol.http-client.ssl.trust-store.password properties in the following table.
|
Property
|
Default Value
|
Description
|
||
---|---|---|---|---|
cx-server.protocol.port
|
8443
|
The port on which the Connection Server listens for incoming WebSocket connections. The default value is the common secure port, 8443. If no port is specified at all, port 8080 is used.
|
||
cx-server.health-check.port
|
9009
|
The port on which the Connection Server's Health Check service listens for HTTP(S) connections. To use a different port, uncomment the line and enter a different port number.
|
||
cx-server.thing.name
|
"alwayson-cxserver-1"
|
The Thing name with which the Connection Server binds after connecting to the ThingWorx Platform. If no name is specified (the value is null), the Thing name will be alwayson-cxserver-<uuid>, where <uuid> is a randomly generated, unique identifier. To use a different Thing name, uncomment the line and enter the Thing name.
|
||
cx-server.protocol.http-client.ssl.verify-host
cx-server.transport.websockets.connections.verifyHostName
|
false
|
These two properties control whether TLS host name validation is performed when making TLS connections to a ThingWorx Platform. TLS host name validation is enabled by default. Disabling host-name verification could open up potential man-in-the-middle attacks and is strongly discouraged.
In the ThingWorx High Availability Clustering environment each ThingWorx Platform instance registers its IP address in ZooKeeper service discovery. The Connection Server connects to a platform instance using the IP address registered in ZooKeeper. The TLS connection will fail host name validation unless the TLS cerfiticate of the platform instance contains an IP Address entry in the Subject Alternative Name extension that matches its IP address.
In this scenario, you can disable host name validation by uncommenting these two properties. The default values will disable host name validation.
|
||
false
|
||||
cx-server.protocol.http-server.ssl.enabled
|
true
|
SSL/TLS is enabled by default for the port on which the Connection Server listens for incoming WebSocket connections. PTC strongly recommends always leaving SSL/TLS enabled.
|
||
cx-server.protocol.http-server.ssl.key-store.type
|
"pkcs12"
|
Java Key Store: The Java Key Store format is considered insecure compared to a PKCS #12 key store. It is recommended that you convert the JKS key store into a PKCS #12 key store, following this instructions in Converting JKS Keystores to PKCS Keystores. If you must use a JKS key store:
1. Set the key-store.file property above in the REQUIRED section to the path of the JKS key store (.jks).
2. Uncomment this property line to enable the JKS key store format support.
|
||
cx-server.protocol.http-client.ssl.enabled
|
true
|
Enables or disables SSL/TLS configuration for the HTTP pass-through and remote access/tunneling WebSocket connections to the ThingWorx Platform. By default it is enabled.
|
||
cx-server.protocol.http-client.ssl.trust-store.file
|
"/path/to/trust-store.jks"
|
Path to the trust store containing the certificates trusted by the Connection Server. The trust store must be in the Java key Store format (.jks). The trust store provided by Java ({jre}/lib/security/cacerts) is used by default.
To use a different trust store:
1. Uncomment the #file = … line and specify the path to the trust store.
2. Add the -Djavax.net.ssl.trustStore=/path/to/trust-store system property, using the actual path to the trust store, to the CONNECTION_SERVER_OPTS environment variable when launching the Connection Server.
|
||
cx-server.protocol.http-client.ssl.trust-store.password
|
"changeit"
|
The password for the trust store. If there is no password, you can set this property to null. The default trust store password is the password for the trust store provided Java. To use a different trust store password:
1. Uncomment the #password = … line, and specify the trust store password.
2. Add the -Djavax.net.ssl.trustStorePassword=changeit system property , with the actual password for the trust store, to the CONNECTION_SERVER_OPTS environment variable when launching the Connection Server.
|
||
cx-server.transport.websockets.service-discovery.tls-enabled
|
true
|
SSL/TLS is enabled by default for the WebSocket connections between the Connection Server and a ThingWorx Platform in a ThingWorx High Availability Cluster. The value of this property must align with the service-name used to look up ThingWorx Platform endpoints. If SSL/TLS is enabled here, the service-name property value must match the HTTPS service name configured for the ThingWorx Platform. If SSL/TLS is disabled here, the service-name property value must match the HTTP service name configured for the ThingWorx Platform.
|
||
cx-server.transport.websockets.service-discovery.service-name
|
"thingworx-https"
|
The service name with which the Connection Server should look up the ThingWorx Platform instances from service discovery. The platform instances will register with service discovery depending on its configuration. If it is configured with an HTTPS endpoint, the platform will register with its configured HTTPS service name, thingworx-https by default. If it is configured with an HTTP endpoint, the platform will register with its configured HTTP service name, thingworx-http by default.
|
||
cx-server.transport.websockets.service-discovery.sasl-enabled
|
true
|
Whether to use SASL for communications with the ZooKeeper instances,
|
||
cx-server.transport.websockets.service-discovery.sasl-krb5-conf-file
|
/path/to/kerberos-conf
|
If SASL is enabled, specify the path to the configuration file for KRB5 (Kerberos) in the cluster.
|
||
cx-server.transport.websockets.service-discovery.sasl-jaas-file
|
/path/to/jaas-conf
|
If SASL is enabled, specify the path to the configuration file for JAAS (Java Authentication and Authorization Service) in the cluster.
|
||
cx-server.websockets.max-msg-size-bytes
|
1048576
|
The maximum size for a message (in bytes). The default value is 1 MB.
|
||
cx-server.websockets.client-binding-limit
|
c1000
|
The maximum number of Things that can be bound within a single WebSocket connection.
|
||
cx-server-connected-client-limit
|
1000000
|
The maximum number of simultaneous WebSocket connections.
|
||
cx-server.websockets.idle-timeout-ms
|
60000
|
The number of milliseconds that a WaybSocket can be idle before it is closed. When the WebSocket has no activity for longer than the specified value, the Connection Server closes it.
|
||
cx-server.websockets.max-frame-size-bytes
|
|
If you are setting up an internal testing environment, this step is strongly recommended but not required. Do not skip this step when setting up a production environment. If you choose not to encrypt the configuration file, set the environment variable to point to your configuration files and to the SSL/TLS settings, as explained in Setting the Environment Variable When Using an Unencrypted Configuration
File and Setting
an Environment Variable When Using SSL/TLS
|