🗄️ Security for CogStack provided other services
🗄️ Security for CogStack provided other services
General services TLS configuration
All services in cogstack that are not listed in deploy/services.ymland use TLS will be described on this page. For services that are still part of the stack but in dervices/<SERVICE_NAME> (again, service not also present in deploy/services.yml) the TLS setup is handled differently, and the setup is described in each service's README.md. Generally, most should just use the root-ca certs from security/certificates/root/.
Gitea TLS Configuration
This section describes how Gitea is secured using the shared Root Certificate Authority (CA) generated by create_root_ca_cert.sh.
Unlike other services (such as NiFi or Elastic), Gitea does not require its own dedicated certificate pair or an NGINX reverse proxy. It operates directly with the Root CA to provide HTTPS encryption and mutual trust within the CogStack-NiFi stack.
📁 Certificate source
All certificates used by Gitea originate from:
security/certificates/root/
| File | Purpose |
|---|---|
root-ca.pem |
Public CA certificate used by Gitea for HTTPS trust |
root-ca.key |
Root CA private key (used only when generating new certificates) |
root-ca.p12 |
Optional PKCS#12 keystore (not required by Gitea) |
🧠 Notes
- The Root CA (
root-ca.pem) is shared across all CogStack services for internal TLS trust. - You do not need to create a new
gitea.crtorgitea.key; the Root CA cert/key pair is sufficient. - Ensure
root-ca.keyremains private and is not committed to version control. - The same CA also secures NiFi, ElasticSearch, OpenSearch, Kibana, and JupyterHub.
✅ Verification
To confirm Gitea is serving HTTPS correctly:
curl -vk --cacert ./security/certificates/root/root-ca.pem https://gitea.local:2222/
You should see a valid TLS handshake and an HTTP 200 response.