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

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:

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.2.tar.gz (11.1 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.2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

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

Hashes for certbot_dns_micetro-1.0.2.tar.gz
Algorithm Hash digest
SHA256 a9e38a67a767283c2515c9bea4ed3577e8c4224ca9022c58bb35591f8579776b
MD5 383b2ead1a9848752686905a4c51502d
BLAKE2b-256 13d49bfeb78752caa89d7fe6dad65c1978c542ccce002576eb0254ae68ec556a

See more details on using hashes here.

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

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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for certbot_dns_micetro-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9a98af323d6e14d74829eab31745eab39c395db58b7e69087a85b2473c8a5867
MD5 27735a4ab07df7195f47ace7c8019ab5
BLAKE2b-256 eeb391e564423489dff5eaeacc81b71426fd7b5c54614f3ad50bd771a1dd9672

See more details on using hashes here.

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

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