This project is a Python implementation of an ACME (Automated Certificate Management Environment) client. It interacts with an ACME server to automate the process of obtaining and managing SSL/TLS certificates.
- DNS and HTTP challenge solving
- Certificate generation
- Certificate revocation
This project uses the following Python libraries:
requestspycryptodomepyopenssldnslib
To use this client, simply run the client.py script. The script will automatically handle the process of obtaining a certificate from an ACME server.
python client.pyThe client can be configured through command line arguments. The available arguments are:
dir: The directory of the ACME server.dns_record: The DNS record to use for DNS challenges.domains: The domains to obtain a certificate for.challenge_type: The type of ACME challenge to solve. Can be eitherhttp01for HTTP challenges ordns01for DNS challenges.revoke: Whether to revoke the certificate after obtaining it.
The obtained certificate is saved to tmp/cert.pem.
This is a basic implementation and may not include all features of the ACME protocol. It is intended for educational purposes and may not be suitable for production use.