{"id":18552572,"url":"https://github.com/ionos-cloud/certbot-dns-ionos-cloud","last_synced_at":"2025-06-26T08:33:54.362Z","repository":{"id":233525431,"uuid":"771438289","full_name":"ionos-cloud/certbot-dns-ionos-cloud","owner":"ionos-cloud","description":"The IONOS Cloud DNS Certbot Plugin automates SSL certificate management by integrating with IONOS Cloud DNS services.","archived":false,"fork":false,"pushed_at":"2025-05-07T07:57:47.000Z","size":33,"stargazers_count":7,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-06-08T21:51:28.107Z","etag":null,"topics":["certbot","certbot-plugin","dns-01-acme-challenge","lets-encrypt","tls-certificate"],"latest_commit_sha":null,"homepage":"https://cloud.ionos.de/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ionos-cloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-13T09:52:44.000Z","updated_at":"2025-05-07T07:57:49.000Z","dependencies_parsed_at":"2024-04-16T15:18:13.777Z","dependency_job_id":"a057e723-1009-409d-b580-6258042c4501","html_url":"https://github.com/ionos-cloud/certbot-dns-ionos-cloud","commit_stats":null,"previous_names":["ionos-cloud/certbot-dns-ionos-cloud"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ionos-cloud/certbot-dns-ionos-cloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ionos-cloud%2Fcertbot-dns-ionos-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ionos-cloud%2Fcertbot-dns-ionos-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ionos-cloud%2Fcertbot-dns-ionos-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ionos-cloud%2Fcertbot-dns-ionos-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ionos-cloud","download_url":"https://codeload.github.com/ionos-cloud/certbot-dns-ionos-cloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ionos-cloud%2Fcertbot-dns-ionos-cloud/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262030473,"owners_count":23247663,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["certbot","certbot-plugin","dns-01-acme-challenge","lets-encrypt","tls-certificate"],"created_at":"2024-11-06T21:14:35.968Z","updated_at":"2025-06-26T08:33:54.342Z","avatar_url":"https://github.com/ionos-cloud.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Release](https://img.shields.io/github/v/release/ionos-cloud/certbot-dns-ionos-cloud.svg)\n[![PyPI version](https://img.shields.io/pypi/v/ionoscloud-dns)](https://pypi.org/project/certbot-dns-ionos-cloud/)\n\n![Alt text](https://raw.githubusercontent.com/ionos-cloud/certbot-dns-ionos-cloud/main/.github/IONOS.CLOUD.BLU.svg)\n\n# IONOS Cloud DNS Certbot Authenticator Plugin\n\nThe IONOS Cloud DNS Certbot Plugin automates SSL/TLS certificate creation for [IONOS Cloud](https://cloud.ionos.com/) zones. It implements the [Authenticator](https://github.com/certbot/certbot/blob/master/certbot/certbot/interfaces.py#L158) interface which is used by Certbot to perform a [DNS-01](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) challenge.\n\n## Requirements\n\nTo make use of the plugin, the following is needed:\n* an [IONOS Cloud](https://cloud.ionos.com/) account\n* an access token (a token can be obtained from the [DCD](https://dcd.ionos.com/) token manager or through the [Authentication API](https://api.ionos.com/docs/authentication/v1/))\n\n\n## Installation\n\n```\npip install certbot-dns-ionos-cloud\n```\n\n## Arguments\n\n| Argument                            | Example     | Description                                                                                                                                                                     |\n|-------------------------------------|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `--authenticator`                   | dns-ionos       | Tells certbot which plugin to use. `dns-ionos` should be used for this plugin.                                                                               | \n| `--dns-ionos-credentials`         | ./credentials.ini | Denotes the directory path to the credentials file. Required. |\n| `--dns-ionos-propagation-seconds` | 120               | Configures the duration in seconds that certbot waits before querying the TXT record. (Default: 120)                                  |\n\n\n## Credentials file\n\nAs mentionned in the previous section, the `--dns-ionos-credentials` needs to point to an ini file containing the IONOS API access token. The file must contain the `ionos_dns_token` key with the value of the access token. \n\n```\ndns_ionos_token=YOUR_API_JWT_ACCESS_TOKEN\n\n```\n\n## Example Usage\n\n```\ncertbot certonly \\\n  --authenticator dns-ionos \\\n  --dns-ionos-credentials /path/to/credentials.ini \\\n  --dns-ionos-propagation-seconds 60 \\\n  --agree-tos \\\n  --rsa-key-size 4096 \\\n  -d 'example.com'\n```\n\nIn the background, the plugin will try to find your zone. If found, it will create a TXT record for the [DNS-01](https://letsencrypt.org/docs/challenge-types/#dns-01-challenge) challenge. At the end of the process, the TLS/SSL certificate is generated and the TXT record is deleted.\n\n## Support\n\nIf you encounter any issues or have suggestions, please feel free to open an [issue](https://github.com/ionos-cloud/certbot-dns-ionos-cloud/issues).\n\n## License\n\nThis project is licensed under the Apache License 2.0 License - see the [LICENSE](https://github.com/ionos-cloud/certbot-dns-ionos-cloud/blob/init/LICENSE) file for details.\n\n## How to develop locally\n\nTo develop and test the plugin locally, it is recommend to create a python [virtual environment](https://docs.python.org/3/library/venv.html). For example: `python -m venv .venv`\n\nAfter activating the virtual environment, the following command should be used to install the project to the virtual environment local site packages: `pip install -e .`\n\nAfterwards, any changes made to the plugin will be directly reflected when executing the `certbot certonly --authenticator dns-ionos` (without the need to execute `pip install` again). \n\nIt's important to note that the following arguments need also to be provided when developing locally in a virtual environment `--logs-dir`, `--config-dir`, `--work-dir`, otherwise the `certbot` will attempt to use the global folders for logging, configuration, and work. This may not work because of the lack of permissions, so you may see errors like below if those arguments are not set:\n\n```\nThe following error was encountered:\n[Errno 13] Permission denied: '/var/log/letsencrypt/.certbot.lock'\nEither run as root, or set --config-dir, --work-dir, and --logs-dir to writeable paths.\n```\n\nAs explained by the error message, to be able write to `/var/log/letsencrypt/`, root permissions are needed. However, when running as a root (e.g `sudo certbot`), the global `certbot` package will be used and not the one from the virtual environment. The solution is to set `--logs-dir`, `--config-dir`, and `--work-dir` to a different folder for which the current user has write permissions.\n\n## Testing\n\nunit tests can be run using: `make test`\n\n## Related Plugins\n\nIt's important to note that this plugin targets IONOS [Cloud DNS service](https://cloud.ionos.com/network/cloud-dns). \nIONOS offers a different service for managing DNS zones, refered to as [IONOS Developer DNS API](https://developer.hosting.ionos.com/docs/dns). For the latter, there is dedicated plugin managed by the community: [https://github.com/helgeerbe/certbot-dns-ionos](https://github.com/helgeerbe/certbot-dns-ionos)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fionos-cloud%2Fcertbot-dns-ionos-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fionos-cloud%2Fcertbot-dns-ionos-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fionos-cloud%2Fcertbot-dns-ionos-cloud/lists"}