Metadata-Version: 2.4
Name: gcl_certbot_plugin
Version: 0.0.7
Summary: Plugin for certbot to allow dns-01 acme checks in letsencrypt.
Author-email: Genesis Corporation <mail@gmelikov.ru>
License: Apache-2.0
Project-URL: homepage, https://github.com/infraguys/gcl_certbot_plugin/
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: bazooka<2.0.0,>=1.3.0
Requires-Dist: certbot<5.0.0,>=3.0.0
Requires-Dist: gcl_iam<2.0.0,>=0.11.0
Requires-Dist: gcl_sdk<3.0.0,>=0.4.0
Requires-Dist: cryptography<47.0.0,>=45.0.5
Provides-Extra: dev
Requires-Dist: tox>=4.0.0; extra == "dev"
Requires-Dist: tox-uv; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Provides-Extra: test
Requires-Dist: coverage>=4.0; extra == "test"
Requires-Dist: mock<4.0.0,>=3.0.5; extra == "test"
Requires-Dist: pytest<9.0.0,>=8.0.0; extra == "test"
Requires-Dist: pytest-timer<2.0.0,>=1.0.0; extra == "test"
Provides-Extra: mypy
Requires-Dist: mypy; extra == "mypy"
Provides-Extra: ruff
Requires-Dist: ruff; extra == "ruff"
Provides-Extra: shellcheck
Requires-Dist: shellcheck-py; extra == "shellcheck"
Dynamic: license-file

# gcl_certbot_plugin
Plugin for certbot to allow dns-01 acme checks in letsencrypt with Genesis Core integrated DNS.

## How to use
```bash
# Install the plugin and certbot
pip install gcl_certbot_plugin

# Create certificate
certbot certonly --authenticator=genesis-core \
    --genesis-core-endpoint=http://core.local.genesis-core.tech:11010 \
    --genesis-core-login=admin \
    --genesis-core-password=password \
    --domains test.pdns.your.domain
```

To create a new certificate, in the code
```python
from gcl_certbot_plugin import acme

# Get or creat a client private key
private_key = acme.get_or_create_client_private_key("privkey.pem")

# Get ACME client
client_acme = acme.get_acme_client(private_key, "myemail@example.com")

# Create cert
pkey_pem, csr_pem, fullchain_pem = acme.create_cert(
    client_acme,
    dns_client,
    ["test.pdns.your.domain"],
)
```

For complete example see [create_cert](https://github.com/infraguys/gcl_certbot_plugin/blob/master/gcl_certbot_plugin/examples/create_cert.py) script.
