Manage certificates using Certz.proto
Feature Name |
Release Information |
Feature Description |
---|---|---|
Manage certificates using Certz.proto |
Release 24.1.1 |
Instead of using multiple RPCs, Certz.proto provides a bidirectional Rotate RPC to replace, revoke, or load a certificate. It also provides additional APIs to install Public Key Infrastructure (PKI) entities such as like identity certificates, trust-bundles, and Certificate Revocation Lists (CRLs) for a gRPC Server. This feature introduces the following changes: CLI:
Yang Data Models:
|
gRPC Network Security Interface (gNSI):
Note |
When both gNSI and gNOI are configured, gNSI takes precedence over gNOI. |
The Certz RPCs are specific methods used for executing operations on the certificate that resides in the target device.
In cert.proto, a certificate identifier differentiates between leaf certificates. However, the CA bundle lacks an identifier, meaning a new request to load a bundle could overwrite the existing one. On the other hand, in certz.proto, entities like Certificate, CA bundle, key, CRL, and authentication policy are tied to a unique SSL profile.
Unlike cert.proto, the certz.proto, entities like Certificate, CA bundle, key, CRL, and authentication policy are all tied to a unique SSL profile. This means that each SSL profile has its own set of these entities and doesnt overwrite existing bundle.
The certz.proto differs from the cert.proto in the way that it handles the upload of all entities. While in cert.proto, separate RPCs are used to replace, load, and revoke a certificate, in certz.proto, a single Rotate() RPC is used to upload all entities at once. This includes the certificate, the key, the CA bundle, and the CRL.
In addition to these features, certz.proto also provides support for different cryptographic algorithms, including Rivest-Shamir-Adleman (RSA), Elliptic Curve Digital Signature Algorithm (ECDSA), and ED25519, a public-key signature system.
These functionalities make certz.proto a comprehensive solution for managing SSL profiles, providing a streamlined process for handling cryptographic entities and algorithms.
Note |
If neither cert.proto nor certz.proto is configured, then tls trustpoint data is considered for certificate management. |
SSL Profile
An SSL profile is a named set of SSL settings that determine how end-user systems connect to or from SSL-based applications or interfaces. The settings in an SSL profile include information about the version of SSL/TLS to be used, certificates, keys, and other parameters related to SSL/TLS communication. By using profiles, administrators can manage and apply these settings more easily across multiple applications or connections.
Here are some key-points regarding SSL profile:
-
SSL profiles logically groups certificate, private key, Certificate Authority chain of certificates (a.k.a. a CA trust bundle) and a list of Certificate Revocation Lists into a single set that then can be assigned to a gRPC server.
-
There’s at least one profile present on a target - the one that is used by the gRPC server. Its ID is gNxI but when the ssl_profile_id field in the RotateCertificateRequest message isn’t set (or set to an empty string) it also refers to this SSL profile by default.
-
You can’t remove the gRPC SSL profile (gNxI).
The following table describes the RPCs supported under Certz.proto.
RPC | Description | ||
---|---|---|---|
AddProfile |
AddProfile is part of SSL profile management. It allows adding a new SSL profile. When an SSL profile is added, all its elements, that is, certificate, CA trusted bundle and a set of certificate revocation lists are NULL/Empty. So, before an SSL profile can be used these entities have to be 'rotated' using the `Rotate()` RPC.
|
||
Rotate |
Rotate replaces/adds an existing device certificate and/or CA certificates (trust bundle) or/and a certificate revocation list bundle on the target. The new device certificate can be created from a target-generated or client-generated CSR (Certificate Signing Request). In the latter case, the client must provide the corresponding private key with the signed certificate. |
||
DeleteProfile |
DeleteProfile is part of SSL profile management. It allows for removing an existing SSL profile.
|
||
GetProfileList |
GetProfileList is part of SSL profile management. It allows for retrieving a list of IDs of SSL profiles present on the target. |
||
CanGenerateCSR |
An RPC to ask a target if it can generate a CSR. |