Built for Sisense Beta
The pre-built Sisense template ships in your CertKit account, currently in beta.
A self-hosted Sisense install on Linux runs in Kubernetes. The installer reads the
certificate and key from ssl_cer_path and ssl_key_path in its
config file, builds a TLS secret from them, and the ingress controller serves that secret
on port 443. A renewed certificate does nothing until someone replaces the files, rebuilds
the secret, and checks that Sisense picked it up.
Every 47 days.
CertKit issues and renews the certificate centrally, then the CertKit Agent on the Sisense node writes it to the installer's files and replaces the TLS secret with kubectl.
The pre-built Sisense template ships in your CertKit account, currently in beta.
On every renewal, the agent writes the certificate and key to the files your installer config points at, finds the TLS secret the Sisense Ingress or Gateway uses, and replaces it. Then it checks what port 443 presents. If the controller still serves the old certificate, the agent restarts the ingress-nginx pods and checks again.
The agent also reads your installer config and warns you when is_ssl,
ssl_cer_path, or ssl_key_path would undo the renewal at the
next upgrade.
The manual process, if you want to do it yourself:
single_config.yaml or cluster_config.yaml, set
update: true, is_ssl: true, ssl_cer_path and
ssl_key_path to the new files, and application_dns_name to the
certificate's common name.
./sisense.sh single_config.yaml (or your
cluster config). The installer rebuilds the TLS secret from the files in the config.
kubectl create secret tls with --dry-run=client -o yaml and
pipe it to kubectl apply. A mismatched pair fails with "tls: private key does
not match public key".
openssl s_client with the Sisense host name. Older releases running
ingress-nginx can keep the old certificate until the controller pods restart, which is
when users see NET::ERR_CERT_DATE_INVALID or "x509: certificate has expired or is not yet valid".
Every one of these steps is manual, and Sisense won't repeat any of them when the certificate renews. With lifetimes shrinking to 47 days, that's twelve times a year, on every Sisense install. Miss one and every dashboard embedded in your product or intranet stops loading behind a certificate error.
At 47 days, automation is the only sustainable way to run Sisense certificates. Here's how CertKit does it.
From an operational perspective, CertKit is easy to deploy and manage. The ability to configure unique and specialized certificates is key to replacing our manual certificate processes.
Laura Thomas, Senior Central Systems Administrator, University of St. Thomas
Your Sisense node CertKit ACME CA ┌───────────────────┐ ┌──────────────────┐ ┌─────────────┐ │ │ │ │ │ │ │ ┌───────────────┐ │ Issue & Renew │◄──►│ │ │ │ CertKit Agent │◄──┤ Certificates │ │ │ │ └─────────┬─┬───┘ │ ┌───┐ └─────────────┘ │ │ │ │ └───────────┬────│DNS│ │ PEM files ◄─┘ │ │ │ └───┘ │ [x] Written │ │ │ │ │ │ │ │ TLS secret ◄─┘ │ ◄───────────────┘ │ [x] Replaced │ Verify └───────────────────┘
CertKit issues and renews certificates centrally using delegated DNS validation. You create a one-time CNAME record, and CertKit handles every ACME challenge after that.
The agent runs on the Sisense node, pulls each renewal over outbound HTTPS, and uses the kubeconfig the Sisense installer already set up. Nothing is deployed inside the cluster, and Sisense never runs ACME or holds DNS credentials.
Sisense changed how it serves HTTPS. The pre-built template handles both without any extra settings.
The secret can live in a different namespace on each release, so a hardcoded kubectl
command that works on one install misses on the next. The agent finds the secret through
the Sisense Ingress or Gateway, and falls back to a secret named sisense-tls
in whichever namespace holds it.
ssl_cer_path and
ssl_key_path, owned by the sisense user, so the next upgrade installs the
current certificate.
is_ssl off or points at
different certificate files.
ssl_cer_path and ssl_key_path from your installer config.
Secret discovery is automatic.
Replacing the TLS secret by hand gets the new certificate served today. It also leaves a trap. Every installer run, whether an upgrade, a reconfigure, or a restore, deletes the secret and rebuilds it from the files named in the installer config. If those files still hold last quarter's certificate, the upgrade quietly puts an expired certificate back in front of every dashboard.
CertKit writes each renewal to the same files the installer reads, then replaces the secret. The secret and the config agree after every renewal, so an upgrade installs the certificate you already have.
Most analytics and reporting stacks have more than one place where certificates live: other Kubernetes workloads in the same cluster, Elasticsearch clusters behind your search and log analytics, and SQL Server Reporting Services for paginated reports. CertKit automates all of it from one account.
Free 90-day trial. No credit card required. Direct access to our engineering team to get you set up.