Skip to main content

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.

Upload Python Package

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

# DNS view to use for record management (optional)
# If not set, the default view will be used
dns_micetro_view = external

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:

  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:

Set environment variable with export DNS_MICETRO_DEBUG=1 for detailed API request/response logging or use the --debug flag with certbot:

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

  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 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

certbot_dns_micetro-1.0.3.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

certbot_dns_micetro-1.0.3-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file certbot_dns_micetro-1.0.3.tar.gz.

File metadata

  • Download URL: certbot_dns_micetro-1.0.3.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for certbot_dns_micetro-1.0.3.tar.gz
Algorithm Hash digest
SHA256 f5b8e86e37a8b15d97d2ae65d19c7e7036d3273ce1b1cf69699c4783fa46e7c8
MD5 a8986958b6afc80d50076e6b06d27edf
BLAKE2b-256 88381c23d97f13f20629971474cec9b25045979ea5d7df3652ef8c7d4bb54a69

See more details on using hashes here.

Provenance

The following attestation bundles were made for certbot_dns_micetro-1.0.3.tar.gz:

Publisher: pypi.yml on cedarville-university/certbot-dns-micetro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file certbot_dns_micetro-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_micetro-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d659e5ee816dd8bfbbc0cd928c7549674517682cd07a7638bb5501f154e4e662
MD5 f8f9c013f744a7ac45ec79ff4ca01178
BLAKE2b-256 62e9a399235a3db42b496295440cc1bacd1da0fce057072f0c532f80dc4329b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for certbot_dns_micetro-1.0.3-py3-none-any.whl:

Publisher: pypi.yml on cedarville-university/certbot-dns-micetro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page