This repository is part of the open source project CZERTAINLY. You can find more information about the project at CZERTAINLY repository, including the contribution guide.
Core provides the basic functionality for the CZERTAINLY platform. It implements the logic for the certificate lifecycle management and handles all related tasks. You can think about it as a brain of the CZERTAINLY platform.
There are 2 types of communication that the Core is responsible for:
- client requesting management operations on top of certificates and related objects
Connectorthat provides with the functionality for specific technologies
The management of certificates and cryptographic keys is abstracted through CZERTAINLY objects called Profiles, such as:
RA Profile- configuration of the service for certificate lifecycle managementToken Profile- configuration of the cryptographic service and management of the keysCompliance Profile- compliance requirements for the certificates and related objects
For more information, refer to the CZERTAINLY documentation.
Core access control requires the following to run:
- CZERTAINLY-Auth service to manage users, roles, permission. The URL of the
Authservice can be configured usingAUTH_SERVICE_BASE_URLenvironment variable. - OPA (Open Policy Agent) evaluating policies and providing decisions about authorization. The OPA service URL can be confgiured using
OPA_BASE_URLenvironment variable. - OPA policies bundles that are loaded into OPA service and define the rules to be evaluated. The policies are defined in CZERTAINLY-Auth-OPA-Policies
Warning The
Corewill fail to run whenAuthor OPA is missing.
Note OPA can run on the same system with the
Coreor it can be hosted externally. To improve the performance of the permissions evaluation it is typically running on the same host asCore(e.g. as a sidecar).
Certificate inventory contains all Certificates that were discovered or were imported to the platform. Each Certificate provides comprehensive and consistent information which can be managed.
The following basic lifecycle operations are supported for each Certificate:
- create (request)
- issue
- renew
- rekey
- revoke
Operations can be automated by the Core, but also can be performed manually by the user.
Key inventory contains all Keys that are available for usage. Each Key provides comprehensive and consistent information which can be managed through the Token Profile.
Core supports the following PQC algorithms: FALCON, CRYSTALS-Dilithium, SPHINCS+. The support is experimental and it is not recommended to use it in production as the PQC algorithms are still in the development and not fully standardized.
Core support the following protocols for certificate management:
- ACME
- SCEP (with optional Intune support)
- CMP
Core is provided as a Docker container. Use the czertainly/czertainly-core:tagname to pull the required image from the repository. It can be configured using the following environment variables:
Core supports OpenTelemetry for producing signals (metrics, traces, logs) to the observability system. The following environment variables can be used to configure OpenTelemetry:
You may need to configure proxy to allow Core to communicate with external systems.
To enable proxy, use the following environment variables for docker container:
Example values:
HTTP_PROXY=http://user:[email protected]:3128HTTPS_PROXY=http://user:[email protected]:3128NO_PROXY=localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,cattle-system.svc,.svc,.cluster.local,my-domain.local