Certbot plugin for Micetro DNS authentication
Project description
Certbot DNS Micetro Plugin
A certbot plugin for automating DNS-01 challenges using the BlueCat Micetro DNS management system.
Features
- Automatic DNS TXT record creation and cleanup for ACME challenges
- Support for wildcard certificates
- Secure credential management via INI files
- Preference for external DNS zones over internal zones
- Comprehensive logging and error handling
Installation
From PyPI
pip install certbot-dns-micetro
From Source
git clone https://github.com/cedarville-university/certbot-dns-micetro.git
cd certbot-dns-micetro
pip install .
Configuration
Create a credentials INI file with your Micetro API details:
# micetro.ini
# Micetro API credentials for certbot DNS authentication
# Save this file with restricted permissions: chmod 600 micetro.ini
# Username for your Micetro account
dns_micetro_username = your_micetro_username
# Password for your Micetro account
dns_micetro_password = your_micetro_password
# Micetro API base URL (include the protocol and port if needed)
# Example: https://ipam.yourcompany.com/mmws/api/v2
dns_micetro_url = https://your-micetro-server/mmws/api/v2
Important: Secure your credentials file:
chmod 600 micetro.ini
Usage
Obtain a certificate
certbot certonly \
--authenticator dns-micetro \
--dns-micetro-credentials /path/to/micetro.ini \
-d example.com
Obtain a wildcard certificate
certbot certonly \
--authenticator dns-micetro \
--dns-micetro-credentials /path/to/micetro.ini \
-d example.com \
-d "*.example.com"
Certificate renewal
Certificates obtained with this plugin will be automatically renewed by certbot using the same DNS challenge method.
API Requirements
This plugin requires:
- Micetro DNS management system with API access
- Valid user account with DNS zone management permissions
- Network connectivity to the Micetro API endpoint
The plugin authenticates using username/password credentials and obtains a session token from the /sessions endpoint.
Zone Selection
When multiple DNS zones exist for the same domain (e.g., internal and external views), this plugin will:
- Prefer external zones over internal zones
- Use the first available zone if no external zone is found
Troubleshooting
Authentication Issues
- Verify your credentials in the INI file
- Ensure the Micetro API URL is correct and accessible
- Check that your user account has appropriate permissions
DNS Issues
- Verify that the domain's DNS zone is managed by Micetro
- Ensure the zone allows dynamic DNS updates
- Check network connectivity to the Micetro server
Debugging
Enable debug logging to troubleshoot issues:
certbot certonly \
--authenticator certbot-dns-micetro:dns-micetro \
--certbot-dns-micetro:dns-micetro-credentials /path/to/micetro.ini \
-d example.com \
--debug
Development
Setting up development environment
git clone https://github.com/cedarville-university/certbot-dns-micetro.git
cd certbot-dns-micetro
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .
pip install -r requirements.txt
Running tests
python -m pytest tests/
Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Acknowledgments
- Built on the certbot framework
- Designed for BlueCat Micetro DNS management
- Inspired by other certbot DNS plugins
Support
For issues and questions:
- Open an issue on GitHub
- Check the certbot documentation for general SSL certificate help
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file certbot_dns_micetro-1.0.2.tar.gz.
File metadata
- Download URL: certbot_dns_micetro-1.0.2.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9e38a67a767283c2515c9bea4ed3577e8c4224ca9022c58bb35591f8579776b
|
|
| MD5 |
383b2ead1a9848752686905a4c51502d
|
|
| BLAKE2b-256 |
13d49bfeb78752caa89d7fe6dad65c1978c542ccce002576eb0254ae68ec556a
|
Provenance
The following attestation bundles were made for certbot_dns_micetro-1.0.2.tar.gz:
Publisher:
pypi.yml on cedarville-university/certbot-dns-micetro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
certbot_dns_micetro-1.0.2.tar.gz -
Subject digest:
a9e38a67a767283c2515c9bea4ed3577e8c4224ca9022c58bb35591f8579776b - Sigstore transparency entry: 423076751
- Sigstore integration time:
-
Permalink:
cedarville-university/certbot-dns-micetro@0534b8505114129edf75b6d4bff80e2075138054 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/cedarville-university
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0534b8505114129edf75b6d4bff80e2075138054 -
Trigger Event:
release
-
Statement type:
File details
Details for the file certbot_dns_micetro-1.0.2-py3-none-any.whl.
File metadata
- Download URL: certbot_dns_micetro-1.0.2-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a98af323d6e14d74829eab31745eab39c395db58b7e69087a85b2473c8a5867
|
|
| MD5 |
27735a4ab07df7195f47ace7c8019ab5
|
|
| BLAKE2b-256 |
eeb391e564423489dff5eaeacc81b71426fd7b5c54614f3ad50bd771a1dd9672
|
Provenance
The following attestation bundles were made for certbot_dns_micetro-1.0.2-py3-none-any.whl:
Publisher:
pypi.yml on cedarville-university/certbot-dns-micetro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
certbot_dns_micetro-1.0.2-py3-none-any.whl -
Subject digest:
9a98af323d6e14d74829eab31745eab39c395db58b7e69087a85b2473c8a5867 - Sigstore transparency entry: 423076763
- Sigstore integration time:
-
Permalink:
cedarville-university/certbot-dns-micetro@0534b8505114129edf75b6d4bff80e2075138054 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/cedarville-university
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0534b8505114129edf75b6d4bff80e2075138054 -
Trigger Event:
release
-
Statement type: