66from cephadm .ssl_cert_utils import SSLCerts , SSLConfigException
77from mgr_util import verify_tls , certificate_days_to_expire , ServerConfigException
88from cephadm .ssl_cert_utils import get_certificate_info , get_private_key_info
9- from cephadm .tlsobject_types import Cert , PrivKey , TLSObjectScope , TLSObjectException , CertKeyPair
9+ from cephadm .tlsobject_types import Cert , PrivKey , TLSObjectScope , TLSObjectException , TLSCredentials
1010from cephadm .tlsobject_store import TLSObjectStore
1111
1212if TYPE_CHECKING :
@@ -245,7 +245,14 @@ def register_self_signed_cert_key_pair(self, service_name: str, label: Optional[
245245 self .cert_store .register_object_name (self .self_signed_cert (service_name , label ), TLSObjectScope .HOST )
246246 self .key_store .register_object_name (self .self_signed_key (service_name , label ), TLSObjectScope .HOST )
247247
248- def register_cert_key_pair (self , consumer : str , cert_name : str , key_name : str , scope : TLSObjectScope ) -> None :
248+ def register_cert_key_pair (
249+ self ,
250+ consumer : str ,
251+ cert_name : str ,
252+ key_name : str ,
253+ scope : TLSObjectScope ,
254+ ca_cert_name : Optional [str ] = None
255+ ) -> None :
249256 """
250257 Registers a certificate/key for a given consumer under a specific scope.
251258
@@ -256,6 +263,8 @@ def register_cert_key_pair(self, consumer: str, cert_name: str, key_name: str, s
256263 """
257264 self .register_cert (consumer , cert_name , scope )
258265 self .register_key (consumer , key_name , scope )
266+ if ca_cert_name :
267+ self .register_cert (consumer , ca_cert_name , scope )
259268
260269 def register_cert (self , consumer : str , cert_name : str , scope : TLSObjectScope ) -> None :
261270 self ._register_tls_object (consumer , cert_name , scope , "certs" )
@@ -305,9 +314,10 @@ def generate_cert(
305314 node_ip : Union [str , List [str ]],
306315 custom_san_list : Optional [List [str ]] = None ,
307316 duration_in_days : Optional [int ] = None ,
308- ) -> CertKeyPair :
317+ ) -> TLSCredentials :
309318 cert , key = self .ssl_certs .generate_cert (host_fqdn , node_ip , custom_san_list = custom_san_list , duration_in_days = duration_in_days )
310- return CertKeyPair (cert = cert , key = key )
319+ ca_cert = self .mgr .cert_mgr .get_root_ca ()
320+ return TLSCredentials (cert = cert , key = key , ca_cert = ca_cert )
311321
312322 def cert_exists (self , cert_name : str , service_name : Optional [str ] = None , host : Optional [str ] = None ) -> bool :
313323 cert_obj = self .cert_store .get_tlsobject (cert_name , service_name , host )
@@ -325,24 +335,25 @@ def get_key(self, key_name: str, service_name: Optional[str] = None, host: Optio
325335 key_obj = cast (PrivKey , self .key_store .get_tlsobject (key_name , service_name , host ))
326336 return key_obj .key if key_obj else None
327337
328- def get_self_signed_cert_key_pair (self , service_name : str , hostname : str , label : Optional [str ] = None ) -> CertKeyPair :
338+ def get_self_signed_tls_credentials (self , service_name : str , hostname : str , label : Optional [str ] = None ) -> TLSCredentials :
329339 cert_obj = cast (Cert , self .cert_store .get_tlsobject (self .self_signed_cert (service_name , label ), host = hostname ))
330340 key_obj = cast (PrivKey , self .key_store .get_tlsobject (self .self_signed_key (service_name , label ), host = hostname ))
331341 cert = cert_obj .cert if cert_obj else ''
332342 key = key_obj .key if key_obj else ''
333- return CertKeyPair (cert = cert , key = key )
343+ ca_cert = self .mgr .cert_mgr .get_root_ca ()
344+ return TLSCredentials (cert = cert , key = key , ca_cert = ca_cert )
334345
335346 def save_cert (self , cert_name : str , cert : str , service_name : Optional [str ] = None , host : Optional [str ] = None , user_made : bool = False , editable : bool = False ) -> None :
336347 self .cert_store .save_tlsobject (cert_name , cert , service_name , host , user_made , editable )
337348
338349 def save_key (self , key_name : str , key : str , service_name : Optional [str ] = None , host : Optional [str ] = None , user_made : bool = False , editable : bool = False ) -> None :
339350 self .key_store .save_tlsobject (key_name , key , service_name , host , user_made , editable )
340351
341- def save_self_signed_cert_key_pair (self , service_name : str , tls_pair : CertKeyPair , host : str , label : Optional [str ] = None ) -> None :
352+ def save_self_signed_cert_key_pair (self , service_name : str , tls_creds : TLSCredentials , host : str , label : Optional [str ] = None ) -> None :
342353 ss_cert_name = self .self_signed_cert (service_name , label )
343354 ss_key_name = self .self_signed_key (service_name , label )
344- self .cert_store .save_tlsobject (ss_cert_name , tls_pair .cert , host = host , user_made = False )
345- self .key_store .save_tlsobject (ss_key_name , tls_pair .key , host = host , user_made = False )
355+ self .cert_store .save_tlsobject (ss_cert_name , tls_creds .cert , host = host , user_made = False )
356+ self .key_store .save_tlsobject (ss_key_name , tls_creds .key , host = host , user_made = False )
346357
347358 def rm_cert (self , cert_name : str , service_name : Optional [str ] = None , host : Optional [str ] = None ) -> bool :
348359 return self .cert_store .rm_tlsobject (cert_name , service_name , host )
0 commit comments