Skip to content

Commit de54885

Browse files
committed
fixup! fixup! fixup! fixup! [doc] Improvements on management of trusted certificates
Signed-off-by: Ming Lu <ming.lu@cloud.com>
1 parent 699498a commit de54885

1 file changed

Lines changed: 10 additions & 17 deletions

File tree

doc/content/design/trusted-certificates.md

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,25 +72,20 @@ This is an existing API to install a trusted certificate into the pool with its
7272

7373
Prior to this design, the API's name parameter represents the certificate file name as persisted on the dom0 file system.
7474
In this design, this API will be deprecated because it exposes implementation details that should remain internal and hidden from users.
75-
The new "pool.install_root_certificate" should be used instead.
75+
The new "pool.install_trusted_certificate" should be used instead.
7676

77-
### pool.install_root_certificate
77+
### pool.install_trusted_certificate
7878
This is a new API introduced in this design with its arguments being defined as:
7979
* session (ref session_id): reference to a valid session;
8080
* self (ref Pool): reference to the pool;
81-
* cert (string): the trusted root CA certificate in PEM format;
82-
* purpose (string list): the purposes of the trusted root CA certificate; it stands for a general purpose when it is an empty set.
81+
* kind (string): the kind of the certificate; it can be either "ca" or "peer";
82+
* cert (string): the trusted certificate in PEM format;
83+
* purpose (string list): the purposes of the trusted certificate.
8384

84-
This new API is used to install trusted root CA certificates only.
85-
86-
### pool.install_peer_certificate
87-
This is a new API introduced in this design with its arguments being defined as:
88-
* session (ref session_id): reference to a valid session;
89-
* self (ref Pool): reference to the pool;
90-
* cert (string): the trusted peer certificate in PEM format;
91-
* purpose (string list): the purposes of the trusted peer certificate; can't be an empty set.
92-
93-
This new API is used to install trusted peer certificates only.
85+
This new API is used to install trusted certificate.
86+
The value of *kind* can be "ca", which stands for root CA certificate, or "peer" which stands for peer certificate.
87+
When *purpose* is an empty set, it stands for a root CA certificate for general purpose.
88+
The *purpose* can not be an empty set when the *kind* is "peer", because each peer certificate is specific to a single server and therefore unsuitable for a shared trusted certificate for general purpose.
9489

9590
### pool.uninstall_certificate
9691
This is a new API introduced in this design to uninstall a trusted certificate with its arguments being defined as:
@@ -124,7 +119,7 @@ This design doesn't change this for backwards compatibility. But the API "pool.i
124119

125120
The pool "Trusted Pool" and "Pool Bundle" are for host-to-host TLS communications within a pool. This design doesn't change them.
126121

127-
The stores for the certificates installed via "pool.install_root_certificate" or "pool.install_peer_certificate" are defined as:
122+
The stores for the certificates installed via "pool.install_trusted_certificate" are defined as:
128123
| Name | Filesystem location | Used for |
129124
| ---- | ------------------- | -------- |
130125
| Trusted General CA | /etc/trusted-certs/ca-general/ | Trusted root CA certificates that users can install to validate a peer’s identity when establishing a TLS connection for general purpose.
@@ -137,8 +132,6 @@ The stores for the certificates installed via "pool.install_root_certificate" or
137132
The filesystem location is derived from the \<PURPOSE\>. Each \<PURPOSE\> string corresponds to a predefined value of the "purpose" type in the database, implemented as predefined constants.
138133
The certificate file names under filesystem locations of "Trusted General CA", "Trusted Peer" and "Trusted CA" will be the UUIDs of the *Certificate* objects.
139134

140-
There is no general‑purpose store for trusted peer certificates, because each peer certificate is specific to a single server and therefore unsuitable for a shared trust bundle for general purpose.
141-
142135
## Precedence order of choosing trust stores
143136
The "Peer Bundle", "CA Bundle", and "Default Bundle" can be directly used when establishing TLS connections.
144137
The endpoint to validate the peer's identity must unambiguously choose only one non-empty bundle from them with the following precedence order:

0 commit comments

Comments
 (0)