# 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
```bash
pip install certbot-dns-micetro
```
### From Source
```bash
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:
```ini
# micetro.ini
# Micetro API credentials for certbot DNS authentication
# Save this file with restricted permissions: chmod 600 micetro.ini
# Username for your Micetro account
certbot_dns_micetro:dns_micetro_username = your_micetro_username
# Password for your Micetro account
certbot_dns_micetro: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
certbot_dns_micetro:dns_micetro_url = https://your-micetro-server/mmws/api/v2
```
**Important:** Secure your credentials file:
```bash
chmod 600 micetro.ini
```
## Usage
### Obtain a certificate
```bash
certbot certonly \
--authenticator certbot-dns-micetro:dns-micetro \
--certbot-dns-micetro:dns-micetro-credentials /path/to/micetro.ini \
-d example.com
```
### Obtain a wildcard certificate
```bash
certbot certonly \
--authenticator certbot-dns-micetro:dns-micetro \
--certbot-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:
1. Prefer external zones over internal zones
2. 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:
```bash
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
```bash
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
```bash
python -m pytest tests/
```
## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
- Built on the [certbot](https://certbot.eff.org/) framework
- Designed for [BlueCat Micetro](https://www.bluecatnetworks.com/) DNS management
- Inspired by other certbot DNS plugins
## Support
For issues and questions:
- Open an issue on [GitHub](https://github.com/cedarville-university/certbot-dns-micetro/issues)
- Check the certbot documentation for general SSL certificate help
Raw data
{
"_id": null,
"home_page": "https://github.com/cedarville-university/certbot-dns-micetro",
"name": "certbot-dns-micetro",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "certbot micetro dns ssl certificate letsencrypt",
"author": "Nat Biggs",
"author_email": "nbiggs112@cedarville.edu",
"download_url": "https://files.pythonhosted.org/packages/c5/2f/4f1e6f30f06174f0f52cdc980956c5f91aaed760feffef58325fea2ae931/certbot_dns_micetro-1.0.0.tar.gz",
"platform": null,
"description": "# Certbot DNS Micetro Plugin\n\nA certbot plugin for automating DNS-01 challenges using the BlueCat Micetro DNS management system.\n\n## Features\n\n- Automatic DNS TXT record creation and cleanup for ACME challenges\n- Support for wildcard certificates\n- Secure credential management via INI files\n- Preference for external DNS zones over internal zones\n- Comprehensive logging and error handling\n\n## Installation\n\n### From PyPI\n\n```bash\npip install certbot-dns-micetro\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/cedarville-university/certbot-dns-micetro.git\ncd certbot-dns-micetro\npip install .\n```\n\n## Configuration\n\nCreate a credentials INI file with your Micetro API details:\n\n```ini\n# micetro.ini\n# Micetro API credentials for certbot DNS authentication\n# Save this file with restricted permissions: chmod 600 micetro.ini\n\n# Username for your Micetro account\ncertbot_dns_micetro:dns_micetro_username = your_micetro_username\n\n# Password for your Micetro account \ncertbot_dns_micetro:dns_micetro_password = your_micetro_password\n\n# Micetro API base URL (include the protocol and port if needed)\n# Example: https://ipam.yourcompany.com/mmws/api/v2\ncertbot_dns_micetro:dns_micetro_url = https://your-micetro-server/mmws/api/v2\n```\n\n**Important:** Secure your credentials file:\n```bash\nchmod 600 micetro.ini\n```\n\n## Usage\n\n### Obtain a certificate\n\n```bash\ncertbot certonly \\\n --authenticator certbot-dns-micetro:dns-micetro \\\n --certbot-dns-micetro:dns-micetro-credentials /path/to/micetro.ini \\\n -d example.com\n```\n\n### Obtain a wildcard certificate\n\n```bash\ncertbot certonly \\\n --authenticator certbot-dns-micetro:dns-micetro \\\n --certbot-dns-micetro:dns-micetro-credentials /path/to/micetro.ini \\\n -d example.com \\\n -d \"*.example.com\"\n```\n\n### Certificate renewal\n\nCertificates obtained with this plugin will be automatically renewed by certbot using the same DNS challenge method.\n\n## API Requirements\n\nThis plugin requires:\n- Micetro DNS management system with API access\n- Valid user account with DNS zone management permissions\n- Network connectivity to the Micetro API endpoint\n\nThe plugin authenticates using username/password credentials and obtains a session token from the `/sessions` endpoint.\n\n## Zone Selection\n\nWhen multiple DNS zones exist for the same domain (e.g., internal and external views), this plugin will:\n1. Prefer external zones over internal zones\n2. Use the first available zone if no external zone is found\n\n## Troubleshooting\n\n### Authentication Issues\n\n- Verify your credentials in the INI file\n- Ensure the Micetro API URL is correct and accessible\n- Check that your user account has appropriate permissions\n\n### DNS Issues\n\n- Verify that the domain's DNS zone is managed by Micetro\n- Ensure the zone allows dynamic DNS updates\n- Check network connectivity to the Micetro server\n\n### Debugging\n\nEnable debug logging to troubleshoot issues:\n\n```bash\ncertbot certonly \\\n --authenticator certbot-dns-micetro:dns-micetro \\\n --certbot-dns-micetro:dns-micetro-credentials /path/to/micetro.ini \\\n -d example.com \\\n --debug\n```\n\n## Development\n\n### Setting up development environment\n\n```bash\ngit clone https://github.com/cedarville-university/certbot-dns-micetro.git\ncd certbot-dns-micetro\npython -m venv venv\nsource venv/bin/activate # On Windows: venv\\Scripts\\activate\npip install -e .\npip install -r requirements.txt\n```\n\n### Running tests\n\n```bash\npython -m pytest tests/\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built on the [certbot](https://certbot.eff.org/) framework\n- Designed for [BlueCat Micetro](https://www.bluecatnetworks.com/) DNS management\n- Inspired by other certbot DNS plugins\n\n## Support\n\nFor issues and questions:\n- Open an issue on [GitHub](https://github.com/cedarville-university/certbot-dns-micetro/issues)\n- Check the certbot documentation for general SSL certificate help\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Certbot plugin for Micetro DNS authentication",
"version": "1.0.0",
"project_urls": {
"Bug Reports": "https://github.com/cedarville-university/certbot-dns-micetro/issues",
"Homepage": "https://github.com/cedarville-university/certbot-dns-micetro",
"Source": "https://github.com/cedarville-university/certbot-dns-micetro"
},
"split_keywords": [
"certbot",
"micetro",
"dns",
"ssl",
"certificate",
"letsencrypt"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "8cb2ab756ac5f69b4c3ff0526d27e4b7c714ebe86eeeeecb246d396efaa53df9",
"md5": "831f18e814c91fdce90ebcb94a893c61",
"sha256": "30b5cbea6fbd2f8bd2cba4d1a68d0f74b180df49bf5033c85f3bb1155962752a"
},
"downloads": -1,
"filename": "certbot_dns_micetro-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "831f18e814c91fdce90ebcb94a893c61",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 10480,
"upload_time": "2025-08-20T13:47:12",
"upload_time_iso_8601": "2025-08-20T13:47:12.343179Z",
"url": "https://files.pythonhosted.org/packages/8c/b2/ab756ac5f69b4c3ff0526d27e4b7c714ebe86eeeeecb246d396efaa53df9/certbot_dns_micetro-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c52f4f1e6f30f06174f0f52cdc980956c5f91aaed760feffef58325fea2ae931",
"md5": "d08797c21491741c57ab9dab30985bd8",
"sha256": "fdbcc291299011f02fe5289d51b915236b122bed98bf3dee18d4018b235c48e2"
},
"downloads": -1,
"filename": "certbot_dns_micetro-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "d08797c21491741c57ab9dab30985bd8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 9920,
"upload_time": "2025-08-20T13:47:13",
"upload_time_iso_8601": "2025-08-20T13:47:13.670640Z",
"url": "https://files.pythonhosted.org/packages/c5/2f/4f1e6f30f06174f0f52cdc980956c5f91aaed760feffef58325fea2ae931/certbot_dns_micetro-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-20 13:47:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cedarville-university",
"github_project": "certbot-dns-micetro",
"github_not_found": true,
"lcname": "certbot-dns-micetro"
}