Secure the SEAL Operator Services¶
For security reasons, SEAL Systems strongly recommends to use TLS encryption. This is also helps to avoid certificate warnings in the browser.
Configure the TLS Encryption¶
-
Get a TLS certificate in PEM format, as written in the Requirements.
-
Replace the following file containing the private key:
%PROGRAMDATA%\SEAL Systems\config\tls\key.pem -
Replace the following file containing the public certificate:
%PROGRAMDATA%\SEAL Systems\config\tls\cert.pem -
Set the paths for the directories containing the certificate files.
-
TLS_DIR: directory containing the certificate files necessary for the secure transfer within SEAL Operator
-
TLS_EXTERNAL_DIR: directory containing the external certificate files necessary for the services handling external requests
env: service: any: tag: any: TLS_DIR: '%PROGRAMDATA%\SEAL Systems\config\tls' TLS_EXTERNAL_DIR: '%PROGRAMDATA%\SEAL Systems\config\external_tls'Hint - no trailing backslash
Make sure the path doesn't end with a backslash.
Hint - tls certificate fallback chain
TLS_EXTERNAL_DIR->TLS_DIR-> built-in certificatesHint - Windows certificate store not trusted by Node.js
Importing a CA certificate into the Windows certificate store only makes it trusted by the browser. The
seal-operator-*services run on Node.js and don't use the Windows certificate store. For the services to trust the certificate, provide it viaTLS_EXTERNAL_DIRorTLS_DIRinstead.Caution - unverified observation
In one observed case, setting
TLS_EXTERNAL_DIRwithout also settingNODE_TLS_REJECT_UNAUTHORIZEDto0caused a crash loop across mostseal-operator-*services. This hasn't been confirmed by log analysis. If services fail to start after settingTLS_EXTERNAL_DIR, also try settingNODE_TLS_REJECT_UNAUTHORIZEDto0. -
-
If self-signed certificates are used,
NODE_TLS_REJECT_UNAUTHORIZEDhas to be set to0:env: service: any: tag: any: NODE_TLS_REJECT_UNAUTHORIZED: '0'Caution - security gap
Setting
NODE_TLS_REJECT_UNAUTHORIZEDto0in a productive system is a serious security gap! Only use it for test purposes!Hint - certificate
Unless
NODE_TLS_REJECT_UNAUTHORIZEDis set to0or specified at all, the certificate has to contain the correct IP address or hostname since this is used for the authorization check. -
Restart SEAL Operator.
operator service start
Specify a CA Certificate (Unnecessary in Most Cases)¶
If a CA certificate has been specified, the SEAL Operator services require a client certificate from each client. That means from all other SEAL Operator services and the web browser. It requires corresponding properties of the certificate and is a high effort. A complete explanation of how to use client certificates is beyond the scope of this documentation.
For the rare other cases, the CA certificate for the SEAL Operator services needs to be saved to the following file:
%PROGRAMDATA%\SEAL Systems\config\tls\ca.pem
Next Step¶
Continue with: Secure Consul