Secure letsencrypt account_key_content better (#34979)

* Ensure temp account key file cleanup even when module fails.

* Adding warning to documentation on pitfalls of using account_key_content.
This commit is contained in:
Felix Fontein 2018-01-17 09:02:06 +01:00 committed by ansibot
parent f8d2f0ac44
commit 1d26686b09

View file

@ -55,6 +55,11 @@ options:
- "Content of the Let's Encrypt account RSA or Elliptic Curve key."
- "Mutually exclusive with C(account_key_src)."
- "Required if C(account_key_src) is not used."
- "Warning: the content will be written into a temporary file, which will
be deleted by Ansible when the module completes. Since this is an
important private key it can be used to change the account key,
or to revoke your certificates without knowing their private keys
, this might not be acceptable."
version_added: "2.5"
account_email:
description:
@ -367,6 +372,7 @@ class ACMEAccount(object):
# Create a key file from content, key (path) and key content are mutually exclusive
if self.key_content is not None:
_, tmpsrc = tempfile.mkstemp()
module.add_cleanup_file(tmpsrc) # Ansible will delete the file on exit
f = open(tmpsrc, 'wb')
try:
f.write(self.key_content)
@ -915,10 +921,6 @@ class ACMEClient(object):
self.cert_days = get_cert_days(self.module, self.dest)
self.changed = True
# Clean up temporary account key file
if self.module.params['account_key_content'] is not None:
os.remove(self.account.key)
def main():
module = AnsibleModule(