@@ -34,24 +34,33 @@ def run(self, tmp=None, task_vars=None):
34
34
35
35
# In pop renewal, generate empty csr in decentralized mode
36
36
if should_generate_csr :
37
- key_data = client .load_file_or_string (content ["private_key" ])
38
- if isinstance (key_data , str ):
39
- key_data = key_data .encode ("utf-8" )
40
- private_key = load_pem_private_key (key_data , None )
41
- csr = HorizonCrypto .generate_pckcs10 (subject = {"cn.1" : "" }, private_key = private_key )
42
- content ["csr" ] = csr
37
+ try :
38
+ pem_data = client .load_file_or_string (content ["certificate_pem" ])
39
+ key_type = HorizonCrypto .get_key_type (pem_data )
40
+ private_key , public_key = HorizonCrypto .generate_key_pair (key_type )
41
+ csr = HorizonCrypto .generate_pckcs10 (subject = {"cn.1" : "" }, private_key = private_key )
42
+ content ['csr' ] = csr
43
+ except Exception as e :
44
+ raise AnsibleError (e )
43
45
44
46
response = client .renew (** content )
45
47
46
48
if "certificate" in response :
47
49
result ["certificate" ] = response ["certificate" ]
48
50
result ["chain" ] = client .chain (result ["certificate" ]["certificate" ])
49
51
50
- if "pkcs12" in response .keys ():
52
+ if should_generate_csr :
53
+ result ["key" ] = HorizonCrypto .get_key_bytes (private_key )
54
+ p12 , p12_password = HorizonCrypto .get_p12_from_key (result ["key" ], result ["certificate" ]["certificate" ], content ["password" ])
55
+ result ["p12" ] = p12
56
+ result ["p12_password" ] = p12_password
57
+ elif "pkcs12" in response .keys ():
51
58
result ["p12" ] = response ["pkcs12" ]["value" ]
52
59
result ["p12_password" ] = response ["password" ]["value" ]
53
60
result ["key" ] = HorizonCrypto .get_key_from_p12 (response ["pkcs12" ]["value" ],
54
61
response ["password" ]["value" ])
62
+
63
+
55
64
56
65
except HorizonError as e :
57
66
raise AnsibleError (e .full_message )
0 commit comments