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:
/opt/seal/etc/tls/key.pem -
Replace the following file containing the public certificate:
/opt/seal/etc/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: '/opt/seal/etc/tls' TLS_EXTERNAL_DIR: '/opt/seal/etc/external_tls'Hint - no trailing slash
Make sure the path does not end with a slash.
Hint - TLS certificate fallback chain
TLS_EXTERNAL_DIR->TLS_DIR-> built-in certificatesHint - system certificate store not trusted by Node.js
Importing a CA certificate into the system certificate store does not make it trusted by the
seal-operator-*services. These services run on Node.js and do not use the system 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:
/opt/seal/etc/tls/ca.pem
Next Step¶
Continue with: Secure Consul