Skip to main content

certbot-dns-valuedomain

CI PyPI version Python Versions License

ValueDomain DNS Authenticator plugin for Certbot.

This plugin automates the process of completing a dns-01 challenge by creating, and subsequently removing, TXT records using the ValueDomain API.

日本語ドキュメント

Features

  • ✅ Automatic DNS-01 challenge completion
  • ✅ Support for wildcard certificates
  • ✅ Automatic TXT record cleanup
  • ✅ Retry logic with exponential backoff
  • ✅ Rate limit handling
  • ✅ Comprehensive error handling
  • ✅ Secure credential management

Installation

pip install certbot-dns-valuedomain

From Source

git clone https://github.com/chrono-meter/certbot-dns-valuedomain.git
cd certbot-dns-valuedomain
pip install -e .

Prerequisites

  • Python 3.9 or higher
  • Certbot 1.1.0 or higher
  • ValueDomain account with API access
  • Domain managed by ValueDomain

Python Version Support

Python Version Status Notes
< 3.9 ❌ Not supported Use plugin version 0.x for older Python
3.9 ✅ Supported Minimum version
3.10 ✅ Supported Stable
3.11 ✅ Supported Recommended
3.12 ✅ Supported Latest stable
3.13+ 🔄 Testing Should work, not officially tested

Configuration

Named Arguments

Argument Description Default
--dns-valuedomain-credentials ValueDomain credentials INI file (Required) None
--dns-valuedomain-propagation-seconds Seconds to wait for DNS propagation 60

Credentials File

Create a credentials file with your ValueDomain API information:

# ValueDomain API credentials
dns_valuedomain_api_key = your_api_key_here
dns_valuedomain_domain = example.com

The path to this file can be provided using the --dns-valuedomain-credentials command-line argument.

Security Best Practices

Important: Protect your credentials file with appropriate permissions:

chmod 600 /path/to/valuedomain.ini

Recommended location: ~/.secrets/certbot/valuedomain.ini

Usage Examples

Obtain a Certificate

certbot certonly 
  --authenticator dns-valuedomain 
  --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini 
  -d example.com

Obtain a Wildcard Certificate

certbot certonly 
  --authenticator dns-valuedomain 
  --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini 
  -d example.com 
  -d '*.example.com'

Obtain a Certificate with Custom Propagation Time

If you experience DNS propagation issues, increase the wait time:

certbot certonly 
  --authenticator dns-valuedomain 
  --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini 
  --dns-valuedomain-propagation-seconds 120 
  -d example.com

Renew Certificates

certbot renew 
  --authenticator dns-valuedomain 
  --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini

Automatic Renewal with Cron

Add to your crontab (crontab -e):

# Renew certificates daily at midnight
0 0 * * * certbot renew --authenticator dns-valuedomain --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini --quiet

Or use systemd timer (recommended for modern systems):

# Enable certbot timer
systemctl enable --now certbot-renew.timer

Test Certificate Issuance (Dry Run)

certbot certonly --dry-run 
  --authenticator dns-valuedomain 
  --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini 
  -d example.com

Getting ValueDomain API Key

  1. Log in to ValueDomain
  2. Navigate to your account settings
  3. Go to API settings section
  4. Generate a new API key
  5. Copy the API key to your credentials file
  6. Ensure your domain is properly configured in ValueDomain

ValueDomain API

This plugin uses the ValueDomain REST API v1:

  • Get DNS records: GET /domains/{domain}/dns
  • Set DNS records: PUT /domains/{domain}/dns

API Documentation: https://www.value-domain.com/api/doc/domain/

Authentication

The plugin uses Bearer token authentication:

Authorization: Bearer YOUR_API_KEY

Troubleshooting

DNS Propagation Errors

If you encounter DNS propagation timeout errors:

# Increase propagation wait time
--dns-valuedomain-propagation-seconds 120

API Authentication Errors

Error: API authentication failed

Solutions:

  • Verify your API key is correct and active
  • Check that the domain is managed by your ValueDomain account
  • Ensure the credentials file has correct permissions (chmod 600)
  • Verify the credentials file path is correct

Permission Denied Errors

Error: Permission denied when reading credentials

Solution:

chmod 600 ~/.secrets/certbot/valuedomain.ini

Rate Limit Errors

The plugin automatically handles rate limits with exponential backoff. If you consistently hit rate limits, consider:

  • Reducing the frequency of certificate requests
  • Contacting ValueDomain support to increase your API limits

Debug Mode

For detailed error information, use the --debug flag:

certbot certonly --debug 
  --authenticator dns-valuedomain 
  --dns-valuedomain-credentials ~/.secrets/certbot/valuedomain.ini 
  -d example.com

Common Issues

Issue: "Plugin not found"

# Reinstall the plugin
pip uninstall certbot-dns-valuedomain
pip install certbot-dns-valuedomain

Issue: "Invalid credentials format"

Ensure your credentials file follows this format:

dns_valuedomain_api_key = your_key
dns_valuedomain_domain = example.com

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/chrono-meter/certbot-dns-valuedomain.git
cd certbot-dns-valuedomain

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venvScriptsactivate

# Install development dependencies
pip install -r requirements-dev.txt

# Install in editable mode
pip install -e .

Run Tests

# Run all tests
pytest tests/

# Run with coverage
pytest tests/ --cov=certbot_dns_valuedomain --cov-report=html

# View coverage report
open htmlcov/index.html

Code Quality

# Format code
black certbot_dns_valuedomain tests

# Lint code
flake8 certbot_dns_valuedomain tests

# Type checking
mypy certbot_dns_valuedomain --ignore-missing-imports

Running Tests Before Commit

# Run all checks
black certbot_dns_valuedomain tests && 
flake8 certbot_dns_valuedomain tests && 
pytest tests/ --cov=certbot_dns_valuedomain

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Contribution Guidelines

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Add tests for new functionality
  5. Ensure all tests pass (pytest tests/)
  6. Format your code (black .)
  7. Commit your changes (git commit -m 'Add some amazing feature')
  8. Push to the branch (git push origin feature/amazing-feature)
  9. Open a Pull Request

Code Style

  • Follow PEP 8 guidelines
  • Use Black for code formatting
  • Add type hints where applicable
  • Write comprehensive docstrings
  • Include unit tests for new features

Security

Reporting Security Issues

If you discover a security vulnerability, please email the maintainer directly instead of using the issue tracker.

Security Best Practices

  • Never commit credentials to version control
  • Use strict file permissions (600) for credentials files
  • Rotate API keys regularly
  • Use environment-specific credentials
  • Review logs for sensitive information leakage

License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

Support

Acknowledgments

  • Certbot - The Let's Encrypt client
  • ValueDomain - DNS provider
  • All contributors to this project

Changelog

See CHANGELOG.md for a list of changes in each version.

Author

chrono-meter stz2012

Project Status

This project is actively maintained. Issues and pull requests are regularly reviewed.


Note: This plugin is not officially affiliated with ValueDomain or Let's Encrypt.

Metadata

Release files for certbot-dns-valuedomain 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for certbot-dns-valuedomain 1.2.0
File Size Uploaded
certbot_dns_valuedomain-1.2.0.tar.gz 19.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for certbot-dns-valuedomain 1.2.0
File Interpreter ABI Platform
certbot_dns_valuedomain-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 35.9 kB

Release files / certbot_dns_valuedomain-1.2.0.tar.gz

Download URL certbot_dns_valuedomain-1.2.0.tar.gz
Size 19.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d435612a6ec6741fe6053006e4affd8a65b21a488ae95a1a4fa8d55d67f543c9
BLAKE2b-256 checksum
How to use checksums
a1fd746359576e45265223cf7b2cf7f0a7e5572dd5db524f94fcb2259ff6372e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release files / certbot_dns_valuedomain-1.2.0-py3-none-any.whl

Download URL certbot_dns_valuedomain-1.2.0-py3-none-any.whl
Size 16.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0dc4c522c79a03165ddfb55c5c0288a0513efab7d5a26753dc0d04a7fcb98a91
BLAKE2b-256 checksum
How to use checksums
e66a6f9c516deac8fdcda236109dd08c37eacafb71429436f9de7b158c0af0c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page