Files
cert-coordinator/certman.py
2026-03-15 12:25:51 -04:00

20 lines
696 B
Python

from schemas import DomainRequest
import subprocess
def request_certificate(domain_request: DomainRequest):
domain = domain_request.domain
credentials_file = domain_request.credentials_file
email = domain_request.email
certbot_command = [
'certbot', 'certonly',
'--dns-cloudflare',
'--dns-cloudflare-credentials', credentials_file,
'--email', email,
'--agree-tos',
'--non-interactive',
'-d', domain,
]
result = subprocess.run(certbot_command, capture_output=True, text=True)
if result.returncode != 0:
raise RuntimeError(f'Certbot returned non-zero exit code:\n{result.stderr}')
return result.stdout