Secure the SEAL Operator Services¶
For security reasons, SEAL Systems strongly recommends using TLS encryption. This 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 does not 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 do not 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 has not 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 to0, the certificate has to contain the correct IP address or host name since this is used for the authorization check. -
Restart SEAL Operator.
operator service start
Specify a CA Certificate¶
In most cases, you do not need to specify a CA certificate. A CA certificate does not make the SEAL Operator services require client certificates. The services do not request a client certificate from other services or from the web browser.
seal-operator-server uses the CA certificate to verify the certificates of the target systems it connects to.
To specify a CA certificate, save it to the following file:
%PROGRAMDATA%\SEAL Systems\config\tls\ca.pem
Next Step¶
Continue with: Secure Consul